2

複数の列を持つテーブルがあり、条件を使用してテーブルをフィルタリングし、一致する範囲を受け取りたいです。(1)ループを使用してテーブルを簡単に反復できること、または(2)列にフィルターを追加できることを知っています。

テーブルの反復が遅すぎるので(1)は好きではありませんが、これはできます。

Excelには、特定の基準でフィルタリングされた範囲を1つのステップで返す関数がありますか?'function multipleVlookup(...)AsRange'のようなもの

編集: 答えの後の私のコード:(ありがとうアレクサンドル)

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
4

1 に答える 1

3

データをフィルタリングできる場合は、テーブルを使用して次のようにメソッド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これにより、元の範囲の表示されているセルのみを含むオブジェクトが返されます。

于 2012-08-23T23:08:14.800 に答える