Hier ist der Code, der einen erweiterten Filter auf die Spalte A im Sheet1-Arbeitsblatt (Listenbereich) anwendet, indem der Wertebereich auf Sheet2 (Kriterienbereich) verwendet wird
%Vor%Nachdem ich diesen Code ausgeführt habe, muss ich etwas mit den Zeilen machen, die momentan auf dem Bildschirm angezeigt werden.
Momentan verwende ich einen Code wie diesen
%Vor%Gibt es eine einfache Eigenschaft, die mir nach der Anwendung eines erweiterten Filters eine Reihe von Zeilen anzeigen kann?
Lances Lösung wird in den meisten Situationen funktionieren.
Aber wenn Sie mit großen / komplexen Tabellen arbeiten, stoßen Sie möglicherweise auf das " SpecialCells-Problem ". Kurz gesagt, wenn der erstellte Bereich mehr als 8192 nicht zusammenhängende Bereiche verursacht (und es kann passieren), gibt Excel einen Fehler aus, wenn Sie versuchen, auf SpecialCells zuzugreifen, und Ihr Code wird nicht ausgeführt. Wenn Ihre Arbeitsblätter komplex genug sind, um mit diesem Problem konfrontiert zu werden, dann empfehlen wir Ihnen, bei der Schleifenmethode zu bleiben.
Es ist erwähnenswert, dass dieses Problem nicht mit der SpecialCells-Eigenschaft selbst auftritt, sondern mit dem Range-Objekt. Dies bedeutet, dass Sie jederzeit, wenn Sie versuchen, ein Bereichsobjekt zu erhalten, das sehr komplex sein könnte, entweder einen Fehlerhandler anlegen oder wie Sie es bereits getan haben, damit Ihr Programm für jedes Element des Bereichs funktioniert (teilen Sie das reichen bis).
Ein anderer möglicher Ansatz wäre, ein Array von Bereichsobjekten zurückzugeben und dann das Array zu durchlaufen. Ich habe einen Beispielcode gepostet, mit dem ich herumspielen kann. Es sollte jedoch angemerkt werden, dass Sie sich nur damit beschäftigen sollten, wenn Sie das beschriebene Problem haben oder Sie nur sicher sein wollen, dass Ihr Code robust ist. Sonst ist es nur unnötige Komplexität.
%Vor%