Не уверен, что это то, что вы хотите, но, похоже, он выполняет то, о чем вы просите, по крайней мере, часть из этого.
http://www.ozgrid.com/VBA/special-cells.htm
Это метод range.specialcells
.
Возвращает диапазон, который содержит только константы или только формулы и т. Д.
Пример использования этого кода показан ниже:
Sub CheckForConstants()
Dim x As Range
Set x = Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
MsgBox "address of cells that contain numbers only is " & x.Address
Set x = Selection.SpecialCells(xlCellTypeConstants)
MsgBox "address of cells that contain constant of any type is " & x.Address
End Sub
Вы выбираете диапазон и затем выполняете этот макрос, и он возвращает адрес тех ячеек, которые отвечают требованиям.
Первый х ищет ячейки, которые содержат только цифры.
Второй х ищет ячейки, которые содержат любые константы
В этом случае диапазон был выбран, но вы можете установить то, что хотите, то есть диапазон («a1: b5») и т. Д.
Я вернулся на рабочий лист и использовал специальный метод goto.
Очевидно, он также использует метод range.special.
Я использовал опцию записи макроса, и это то, что я получил.
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Range("M7").Select
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Range("I6:J16").Select
Selection.SpecialCells(xlCellTypeConstants, 1).Select
Range("L9").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("CP").Select
Application.CutCopyMode = False
Range("I21").Select
ActiveSheet.DrawingObjects.Select
Application.Goto Reference:="GoToSpecialRoutine"
Специальная функция goto на листе использует метод специальных ячеек для некоторых действий.
Он также использует других. В последних 5 строках кода я изменил рабочий лист и попросил его перейти к объектам.
Это действительно не идет к ним. Он просто выбирает их.
Рабочий лист CP содержал объекты, и он использовал код в последних 3 строках, чтобы выбрать все объекты на рабочем листе.
Лучше всего увидеть код позади goto special - записать макрос, а затем использовать функцию goto / special на листе.
Когда закончите, остановите запись и просмотрите записанный вами макрос.
Я не знаю каких-либо других функций для выбора по типу ячейки, но я только новичок, так что это может быть там очень легко и не быть известным мне.