it-swarm.com.ru

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

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

22
1355

Даже если на самом деле не рекомендуется использовать ячейки слияния в 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 его), потому что он возвращает массив.

35
JMax

Джош Браун дал (в комментарии), что я считаю лучшим ответом:

Когда я не знаю границ объединяемой области, я получаю значение с 

Range("B6").MergeArea.Cells(1,1).Value

Это полезно в VBA, когда, например, вы циклически просматриваете файлы, которые могли объединить ячейки неизвестных диапазонов, поэтому вы можете быть гораздо более общими с этим методом. Спасибо, Джош!

25
todd w

Это можно сделать в 2 этапа: 

Назовите диапазон слитых ячеек; выделите объединенную ячейку и перейдите на панель ленты: Formulas Tab --> Define Name;

Убедитесь, что в имени нет пробелов. Пример: defined_Name. Перейдите к нужной ячейке, которую вы хотите увидеть результат/результат. В этой ячейке введите: =defined_Name.

Нажмите ввод, потому что вы сделали. 

0
Christopher Lazok