Как использовать специальный клеточный метод?
В VBA метод специальных ячеек позволяет выбрать ячейку или диапазон ячеек определенного типа и определенного типа значения. Допустим, вы хотите знать, какие ячейки в диапазоне A1:A10 имеют формулу и пронумерованы как значения? Что ж, вы можете добиться этого результата с помощью метода SpecialCells.
Используйте метод специальных ячеек в VBA

Здесь мы пишем код, позволяющий узнать адрес последней использованной ячейки в диапазоне A1:A10. Обратите внимание, что в специальном методе ячейки есть два аргумента, один из которых является обязательным, а другой необязательным.
- Сначала объявите переменную как диапазон для хранения адреса ячейки, возвращаемого кодом.
- После этого обратитесь к диапазону и используйте метод «SpecialCells», где вам нужно указать аргумент «Тип» с помощью «xlCellTypeLastCell».
- Затем установите эту специальную строку кода ячейки в переменную, которую вы определили на первом шаге.
- Отсюда вам нужно использовать окно сообщения VBA, чтобы получить адрес возвращаемой ячейки с помощью специального метода ячейки.
- В конце используйте свойство адреса с переменной, чтобы получить адрес ячейки последнего типа.
Вот полный код.
Dim myRng As Range Set myRng = Range("A1:A10").SpecialCells(xlCellTypeLastCell) MsgBox myRng.Address
Теперь, когда вы запустите этот код, он покажет вам окно сообщения с адресом ячейки, которая использовалась (вводилась) последней. Итак, в моем случае я использовал ячейку A10 и получил то же самое в окне сообщения.
Выбрать ячейки с примечаниями
В Excel старые «Комментарии» теперь называются «Заметки». Когда вы пишете код для выбора комментариев, он будет выбирать заметки, находящиеся в указанном диапазоне. Рассмотрим следующий код.

Dim myRng As Range Set myRng = _ Range("A1:A10").SpecialCells(xlCellTypeComments) myRng.Select
Используйте оба аргумента
Как я уже говорил ранее, у метода SpecialCells есть два аргумента. Теперь давайте посмотрим, как можно использовать эти два аргумента для выбора ячеек, содержащих формулу, и что значение, возвращаемое формулой, является логическим значением.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(xlCellTypeFormulas, xlLogical) myRng.Select
Теперь, когда я запускаю приведенный выше код, он выбирает ячейки из диапазона от A1 до A11, где у меня есть формулы и логическое значение.

Выделение ячеек с условным форматированием
Range("A1:A11").SpecialCells(xlCellTypeSameFormatConditions) Range("A1:A11").SpecialCells(xlCellTypeAllFormatConditions)
Выбрать видимые ячейки
И вы также можете выбрать видимое, используя константу «xlCellTypeVisible». Рассмотрим следующий код.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(xlCellTypeVisible) myRng.Select

Или вы также можете использовать «12» в качестве значения аргумента.
Dim myRng As Range Set myRng = Range("A1:A11").SpecialCells(12) myRng.Select
Ячейки с проверкой данных
Range("A1:A11").SpecialCells(xlCellTypeAllValidation) Range("A1:A11").SpecialCells(xlCellTypeSameValidation)