jaydotkay
Goto Top

Mehere Elemente automatisch auswählen

Hallo Experten,

ich bräuchte mal wieder einen Tipp von euch.

Meine Situation ist folgende:
Ich habe einige sehr lange Spalten mit Daten. Einige Zeilen (bspw. 90.000 von 150.000) sollen aussortiert werden.

Eine Abfrage die detektiert, welche Zeilen (-nummern) gelöscht werden sollen, habe ich bereits. Anschließend wird die jeweilige Zeile einzeln gelöscht.

Nun mein Problem:
Es dauert ewig jede einzelne Zeile zu löschen.

Meine Idee:
Zu löschende Zeilen auf einmal selektieren und löschen.

Ist das ein gangbarer Weg die Zeit zu verkürzen? Wenn ja, wie kann ich eine weitere Zeile selektieren, ohne die vorher selektierte Zeile zu DE-selektieren?

Danke und viele Grüße
Jaydotkay

Content-Key: 238905

Url: https://administrator.de/contentid/238905

Printed on: April 18, 2024 at 01:04 o'clock

Member: colinardo
Solution colinardo May 22, 2014 updated at 12:05:04 (UTC)
Goto Top
Hallo Jaydotkay,
ich würde die Zeilen in einem Range-Objekt mit Union() zusammenfassen und dann ganz zum Schluss nach dem Durchlauf der Schleife dieses Range-Objekt löschen lassen.
Es ist aber auf jeden Fall immer besser nicht mit der Selection sondern mit Ranges zu arbeiten, da so keine echte sichtbare Selektion stattfindet und dadurch den Vorgang zusätzlich beschleunigt.

Ich habe so was ähnliches mal für das Löschen von leeren Zeilen geschrieben:
Sub delEmptyRows()
    Dim rngCells As Range, cell As Range, rngCombined As Range, sheet As Worksheet
    Set sheet = Worksheets(1)
    Set rngCells = sheet.Range("A1", sheet.Range("A65535").End(xlUp))  
    For Each cell In rngCells
        If cell.Value = "" Then  
            If rngCombined Is Nothing Then
                Set rngCombined = cell.EntireRow
            End If
            Set rngCombined = Union(rngCombined, cell.EntireRow)
        End If
    Next
    If Not rngCombined Is Nothing Then
        rngCombined.Delete
    End If
End Sub
Grüße Uwe
Member: jaydotkay
jaydotkay May 22, 2014 at 12:07:32 (UTC)
Goto Top
Top, Vielen Dank!

Auch der Code hat gleich alle weitere Fragen geklärt...

Gruß
Jaydotkay