liese sich wie folgt beantworten:
Auf Fehlerbehandlung wurde verzichtet (bspw. Intersect is nothing usf)
Option Explicit
Sub viaIsect()
Dim wks As Excel.Worksheet: Set wks = ActiveSheet 'zum nachvollziehen via IntelliSense
Dim rng As Excel.Range
With wks
'wenn Filter aktiv; ausschalten; schalten wir gezielt ein
If .AutoFilterMode Then .AutoFilterMode = False
'wenn .Rows.Count = Inhalt, dann diese Range zurückgeben, sonst .end(xlup) ausführen
Set rng = .Range("A1", IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp), .Cells(.Rows.Count, 1)))
'filter setzen; bei der Beispieltabelle werden bewusst areas erzeugt
rng.AutoFilter Field:=1, Criteria1:=1
'komplette Range (via set ermittelt) sichtbare Zellen im gefilterter Bereich / ohne überschrift / drei Spalten weiter rechts zur Veranschaulichung selektiert
Call Intersect(rng, rng.Offset(1), rng.SpecialCells(xlCellTypeVisible)).Offset(0, 3).Select
End With
End Sub
Beispieltabelle:
|