我在表格中有一个列(ListObject),可能会或可能不会被评估,可能会或可能不会显示(过滤费用)。
我以为我可以使用SpecialCells(xlCellTypeVisible)
和SpecialCells(xlCellTypeConstants)
来执行此操作而无需循环。问题是单元格值由公式确定,基本上是=IF(true,"value","")
。
因此,SpecialCells似乎无法区分逻辑空白(即“”)和逻辑常量(“值”)
任何人都有本地方式只返回具有“值”而没有循环的单元格?我平时使用以下循环。
Function GetValuedCells(aRange As Excel.Range) As Excel.Range
If aRange Is Nothing Then Exit Function
Dim rngCell As Excel.Range
For Each rngCell In aRange
If IsValued(rngCell.Value2) Then
If GetValuedCells Is Nothing Then Set GetValuedCells = rngCell
Set GetValuedCells = Union(GetValuedCells, rngCell)
End If
Next
End Function