我有一个包含多列的表格,我想使用条件过滤表格并接收带有匹配项的范围。 (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对象,该对象仅包含原始范围的可见单元格。

09-27 06:35