2016-12-13 3 views
0

Ich habe Tausende von Datensätzen in Blatt B, die ich in Blatt A finden möchte, und lösche die gesamte Zeile in Blatt A. Sie haben eine gemeinsame Spalte. Es gibt jetzt keine Duplikate mehr, wenn alle gelöscht werden müssten. Dies ist offensichtlich ein "nimm den ersten Schlüsselwert von Blatt B Nachschlagen in Blatt A und löschen, Schleife Blatt A. Furchterregend langsam, aber es gibt keine Struktur zu den Schlüsseln (sie sind lexikalisch sortiert) so keine binäre Suche, nur rein lexikalisch. Wie könnte/würde man das tun?Wie man Zeilen aus einem Blatt löscht

+0

Haben Sie versucht, eine vlookup Spalte von A nach B Hinzufügen, und wo es nicht um einen Fehler, versuchen Sie cell.entirerow .delete? – Harlekuin

+0

Müssen Sie den ganzen Vorgang immer wieder wiederholen? Oder es ist nur einmal? Sie können versuchen, "MATCH" in Blatt A zu verwenden und dann das Blatt zu filtern. – nightcrawler23

+0

@Harlekuin Wie würde ich die Schleife steuern, eine Übereinstimmung erkennen, dann führen Sie cell.entreiverow.delete –

Antwort

1

Versuchen Sie eine vlookup Spalte von A nach B hinzuzufügen, und wo es keinen Fehler gibt, versuchen Sie cell.entreiver.delete. (= iferror (vlookup(), "Fine"))

Sie können dies tun mit einer Schleife tun (< Werte ersetzen>):

x = <first row> 

do until sheets("SheetName").cells(x, <column number>) = "" 

if sheets("<SheetName>").cells(x, <vlookup col>) != "Fine" then 'For example based on above 
    x = x + 1 
else 
    sheets("SheetName").cells(x, 1).entirerow.delete 
end if 

loop 
+0

Ist dies in eine VBA-Funktion zu setzen. Ich brauche ein wenig mehr, um dies zu erreichen, wenn Sie können. –

+0

@cp. Ja in einem VBA Sub. Eine andere Option wäre, dass Vlookup und Filter basierend auf der neuen Spalte hinzufügen und löschen (d. H. Wo es nicht gut sagen) – Harlekuin

+0

Danke, ich wähle die letztere ist dies ein "einmal verwenden" -Projekt –

Verwandte Themen