Как получить значение объединенной ячейки excel с адресом диапазона, например "$ B $4: $B $11" в vba
Получите значение объединенной ячейки excel со своего адреса ячейки в vba
Ответ 1
Даже если это действительно не рекомендуется использовать ячейки слияния в Excel (используйте Center Across Selection
, если это необходимо), ячейка, которая "содержит" значение - это значение верхний левый (по крайней мере, способ выразить это).
Следовательно, вы можете получить значение объединенных ячеек в диапазоне B4:B11
несколькими способами:
-
Range("B4").Value
-
Range("B4:B11").Cells(1).Value
-
Range("B4:B11").Cells(1,1).Value
Вы также можете заметить, что все остальные ячейки в них не имеют значения. Во время отладки вы можете увидеть, что значение empty
.
Также обратите внимание, что Range("B4:B11").Value
не будет работать (вызывает ошибку выполнения номер 13 при попытке Debug.Print
), потому что он возвращает массив.
Ответ 2
Джош Браун дал (в комментарии), что я считаю лучшим ответом:
Когда я не знаю границ объединенной области, я получаю значение с помощью
Range("B6").MergeArea.Cells(1,1).Value
Это полезно в VBA, когда, например, вы перебираете файлы, которые могли бы объединить ячейки неизвестных диапазонов, поэтому вы можете быть гораздо более общим с помощью этого метода. Спасибо, Джош!
Ответ 3
Это можно сделать в 2 этапа:
Сначала укажите диапазон объединенных ячеек; выделите объединенную ячейку, затем перейдите на панель ленты: Formulas Tab --> Define Name;
Убедитесь, что в названии нет пробелов. Пример: defined_Name
. Перейдите в нужную ячейку, в которой вы хотите увидеть результат/результат. В этой ячейке введите: =defined_Name
.
Нажмите enter, потому что сделанный.