我尝试使用.SpecialCells
在定义的范围变量中查找非空单元格,如果我使用的话:
Set aRange = Range(Cells(2, 5), Cells(botRow, 5))
Set tRange = aRange.SpecialCells(xlCellTypeConstants)
tRange
为空。但是,如果我使用:
Set tRange = Range(Cells(2, 5), Cells(botRow, 5)).SpecialCells(xlCellTypeConstants)
tRange
有我想要的东西。
为什么.SpecialCells
在定义的范围变量上不起作用?
我想念什么吗?
答案 0 :(得分:1)
尝试使用工作表来限定您的对象( Ranges & Cells
):
Dim ws as Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") '<-- Update
Dim aRange as Range, tRange as Range
Set aRange = ws.Range(ws.Cells(2, 5), ws.Cells(botRow, 5))
Set tRange = aRange.SpecialCells(xlCellTypeConstants)
答案 1 :(得分:0)
将SpecialCells
与xlCellTypeConstants
一起使用时,也添加第二个参数。这是在“转到特殊”对话框中找到的复选框的组合。如果想要全部,请这样做:
aRange.SpecialCells(xlCellTypeConstants, xlErrors + xlLogical + xlNumbers + xlTextValues)
这将同时适用于您的两个版本。