Wie der Bereich der sichtbaren Zeilen nach dem anwenden eines erweiterten filter in Excel (VBA)
Hier ist der code, gilt ein erweiterter filter auf die Spalte A auf dem Arbeitsblatt Tabelle1 (Liste, Auswahl), indem Sie den Bereich der Werte auf der Tabelle2 (Kriterien, Auswahl)
Range("A1:A100").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Sheets("Sheet2").Range("A1:A10"), Unique:=False
Nachdem Sie diesen code ausführen, ich brauche etwas zu tun, mit Zeilen, die sich derzeit auf dem Bildschirm sichtbar.
Derzeit verwende ich ein code wie dieser
For i = 1 to maxRow
If Not ActiveSheet.Row(i).Hidden then
...do something that I need to do with that rows
EndIf
Next
Gibt es eine einfache Eigenschaft, die mir eine Reihe von Zeilen angezeigt, nachdem die Anwendung eines erweiterten filter?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ergibt dies ein
Range
Objekt.Lance ' s Lösung funktioniert in den meisten Situationen.
Aber, wenn Sie sich mit großen und/oder komplexen Tabellenkalkulationen, die Sie vielleicht in der "SpecialCells Problem". In einer nussschale, wenn der Bereich erstellt wird größer als 8192 nicht zusammenhängende Bereiche (und es kann passieren), dann Excel wirft einen Fehler, wenn Sie versuchen, Zugriff SpecialCells und der code wird nicht ausgeführt. Wenn Ihre Arbeitsblätter sind Komplex genug, Sie erwarten, dass dieses problem Auftritt, dann ist es empfohlen, den stick mit der looping-Ansatz.
Es ist erwähnenswert, dass dieses problem nicht mit der SpecialCells-Eigenschaft selbst, sondern es wird mit dem Range-Objekt. Dies bedeutet, dass jederzeit, das Sie zu erlangen versuchen, die ein range-Objekt, das könnte sehr Komplex sein, sollten Sie entweder Mitarbeiter einen Fehler-handler, oder tun, was Sie bereits getan haben, das ist die Ursache Ihr Programm zu arbeiten, auf jedes element des Bereichs (split-Bereich bis).
Ein weiterer möglicher Ansatz wäre es, ein array zurückgeben, der Range-Objekte in einer Schleife durch das array. Ich habe einige Beispiel-code, um zu spielen, um mit. Es sollte jedoch darauf hingewiesen werden, dass Sie sollten wirklich nur diese Mühe machen, wenn Sie erwarten, dass das beschriebene problem oder Sie wollen einfach nur sicher sein, Ihr code ist robust. Ansonsten ist es nur unnötig die Komplexität.
Können Sie den folgenden code verwenden, um den sichtbaren Bereich der Zellen:
Hoffe, das hilft.