我有一个包含多列的表格,我想使用条件过滤表格并接收带有匹配项的范围。 (1)我知道我可以使用循环轻松地在表中进行迭代,或者(2)我可以在列中添加过滤器。
我不喜欢(1),因为表中的迭代太慢,但是我可以做到这一点。
Excel是否具有一步即可返回使用特定条件过滤的范围的函数?类似于“ function multipleVlookup(...)As Range”之类的东西
编辑:
答案后的我的代码:(谢谢亚历山大)
Set tableRange = Range("A1:M" & lastRow)
' Filter
With tableRange
Call .AutoFilter(5, "test1")
Call .AutoFilter(11, "test2")
Call .AutoFilter(9, myDate)
End With
Set filteredRange = tableRange.SpecialCells(xlCellTypeVisible)
' Disable Filter
With tableRange
Call .AutoFilter(5)
Call .AutoFilter(11)
Call .AutoFilter(9)
End With
' Do something with this result
For Each c In f.Cells.Rows
actualRow = c.Row
If actualRow <> 1 Then
' Do something
End If
Next
最佳答案
如果可以过滤数据,则可以使用表的Range
并按如下所示调用SpecialCells
方法:
Dim table_range as Range
Dim filtered_range as Range
Set table_range = Range(...)
table_range.AutoFilter field:=... criteria1:=...
Set filtered_range = table_range.SpecialCells(xlCellTypeVisible)
这将返回一个
Range
对象,该对象仅包含原始范围的可见单元格。