Подтвердить что ты не робот

Получите значение объединенной ячейки excel со своего адреса ячейки в vba

Как получить значение объединенной ячейки excel с адресом диапазона, например "$ B $4: $B $11" в vba

4b9b3361

Ответ 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, потому что сделанный.