Свойство ActiveCell объекта Application, применяемое в VBA для возвращения активной ячейки, расположенной на активном листе в окне приложения Excel.
Свойство Application.ActiveCell
Если свойство ActiveCell применяется к активному окну приложения Excel, то идентификатор объекта (Application или ActiveWindow) можно в коде VBA Excel не указывать. Следующие выражения, скопированные с сайта разработчиков, являются эквивалентными:
1 2 3 4 |
ActiveCell Application.ActiveCell ActiveWindow.ActiveCell Application.ActiveWindow.ActiveCell |
Но если нам необходимо возвратить активную ячейку, находящуюся в неактивном окне приложения Excel, тогда без указания идентификатора объекта на обойтись:
1 2 3 4 5 6 7 |
Sub Primer1() With Windows("Книга2.xlsx") .ActiveCell = 325 MsgBox .ActiveCell.Address MsgBox .ActiveCell.Value End With End Sub |
Программно сделать ячейку активной в VBA Excel можно с помощью методов Activate и Select.
Различие методов Activate и Select
Выберем программно диапазон «B2:E6» методом Select и выведем адрес активной ячейки:
1 2 3 4 |
Sub Primer2() Range("B2:E6").Select ActiveCell = ActiveCell.Address End Sub |
Результат:
Как видим, активной стала первая ячейка выбранного диапазона, расположенная слева вверху. Если мы поменяем местами границы диапазона (Range("E6:B2").Select
), все равно активной станет та же первая ячейка.
Теперь сделаем активной ячейку «D4», расположенную внутри выделенного диапазона, с помощью метода Activate:
1 2 3 4 5 |
Sub Primer3() Range("E6:B2").Select Range("D4").Activate ActiveCell = ActiveCell.Address End Sub |
Результат:
Как видим, выбранный диапазон не изменился, а активная ячейка переместилась из первой ячейки выделенного диапазона в ячейку «D4».
И, наконец, выберем ячейку «D4», расположенную внутри выделенного диапазона, с помощью метода Select:
1 2 3 4 5 |
Sub Primer4() Range("E6:B2").Select Range("D4").Select ActiveCell = ActiveCell.Address End Sub |
Результат:
Как видим, ранее выбранный диапазон был заменен новым, состоящим из одной ячейки «D4». Такой же результат будет и при активации ячейки, расположенной вне выбранного диапазона, методом Activate:
1 2 3 4 5 |
Sub Primer5() Range("E6:B2").Select Range("A3").Activate ActiveCell = ActiveCell.Address End Sub |
Аналогично ведут себя методы Activate и Select при работе с выделенной группой рабочих листов.
Свойство Application.ActiveCell используется для обращения к одной ячейке, являющейся активной, а для работы со всеми ячейками выделенного диапазона используется свойство Application.Selection.
Здравствуйте. Для чего нужны свойства «активная ячейка», практически?
Что такое объект Application?
С объектом Range понятно описывает ячейку и/или диапазон(группа) ячеек.
Добрый день, Мубинджон!
Application — это экземпляр приложения Excel, в котором открыта ваша книга. Свойство ActiveCell позволяет обращаться к активной ячейке без указания ее адреса. Пример:
Обсуждение закрыто.