不确定这是否是您想要的,但它似乎可以满足您的要求,至少是其中的一部分。
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
您选择一个范围,然后执行此宏,它将返回满足要求的单元格的地址。
第一个 x 查找仅包含数字的单元格。第二个 x 查找包含任何常量的单元格
在这种情况下,范围是选择,但您可以设置为您想要的,即 range("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 功能。
完成后,停止录制并查看您录制的宏。
我不知道按单元格类型选择的任何其他功能,但我只是一个新手,所以它很容易在那里并且我不知道。