1

VBA を使用して AutoFilter アクションから返された行番号を格納および取得するにはどうすればよいですか? たとえば、この質問の@brettdj コード(以下のコードを参照) を使用して、列 B の下の「X」を含むすべての行を削除しました。次に、X を含む行番号を保存する必要があります (B4、B6、B9 - 以下のスクリーンショットを参照)。同じブック内の他のシートの同じ行を削除する必要があるためです。

オートフィルター前 オートフィルター後

Sub QuickCull()
    Dim ws As Worksheet
    Dim rng1 As Range
    Set ws = Sheets("Sheet1")
    Set rng1 = ws.Range(ws.[b2], ws.Cells(Rows.Count, "B").End(xlUp))
    Application.ScreenUpdating = False
    With ActiveSheet
            .AutoFilterMode = False
            rng1.AutoFilter Field:=1, Criteria1:="X"
            rng1.Offset(1, 0).EntireRow.Delete
            .AutoFilterMode = False
        End With
    Application.ScreenUpdating = True
End Sub
4

1 に答える 1

3

のコードを使用して、ループせずに特定の基準に一致する行番号で配列を埋めることは可能ですか? これらの行をすばやく返すことができますAutoFilter

たとえば、次のコードは、X が含まれる行の範囲を返します。B2:B50000

Sub GetEm()
Dim StrRng As String
StrRng = Join(Filter(Application.Transpose(Application.Evaluate("=IF(B2:B50000=""X"",""B""&ROW(B2:B50000),""X"")")), "X", False), ",")
If Len(StrRng) > 0 Then MsgBox Range(StrRng).EntireRow.Address & " could be deleted elsewhere"
End Sub
于 2012-12-01T01:47:31.770 に答える