对SpecialCells使用定义的范围

时间:2019-10-09 15:48:21

标签: excel vba

我尝试使用.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在定义的范围变量上不起作用? 我想念什么吗?

2 个答案:

答案 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)

SpecialCellsxlCellTypeConstants一起使用时,也添加第二个参数。这是在“转到特殊”对话框中找到的复选框的组合。如果想要全部,请这样做:

aRange.SpecialCells(xlCellTypeConstants, xlErrors + xlLogical + xlNumbers + xlTextValues)

这将同时适用于您的两个版本。