Получить значение объединенной ячейки Excel из ее адреса ячейки в VBA - PullRequest
23 голосов
/ 23 февраля 2012

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

Ответы [ 3 ]

36 голосов
/ 23 февраля 2012

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

25 голосов
/ 04 декабря 2013

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

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

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

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

0 голосов
/ 21 августа 2014

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...