Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1376to1380
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Update Usedrange nach .Removeduplicates

Update Usedrange nach .Removeduplicates
13.08.2014 11:51:54
Robert
Hallo zusammen,
Beim Verwenden einer Schleife über alle Zeilen einer Tabelle würde ich gerne zugunsten der Geschwindigkeit vorher alle Duplikate in Spalte 1 löschen.
Ich mache das mit der Funktion
Tabelle1.UsedRange.Removeduplicates 1, xlYes
Problem:
die Zeilen werden zwar gelöscht, aber die UsedRange ist noch unverändert wie vor dem löschen. Wie kann ich die Usedrange "Updaten", damit ich in meiner Schleife problemlos .Usedrange.Specialcells(xlCellTypeLastCell).Row referenzieren kann?
Viele Grüße
Robert

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Update Usedrange nach .Removeduplicates
13.08.2014 12:15:11
Daniel
Hi
probiere mal, ob es hilft die Datei zu speichern.
Dann müsste die UsedRange aktualisiert werden.
Excel verfährt bei der Usedrange bzw LastCell nach dem Motto, "lieber etwas zu gross als zu klein" und erkennt das Löschen oder Leeren von Zellen nicht sofort (hinzugefügte Zellen werden jedoch sofort berücksichtigt)
beim RemoveDuplicates muss man zudem beachten, das hierbei keinerlei Anpassungen von Zellbezügen in Formeln oder ähnlichem vorgenommen werden (so wie es beim Löschen von Zellen passiert).
Auf dieses Feature wurde wahrscheinlich bewusst verzichtet, um die hohe Verarbeitungsgeschwindigkeit auch mit grössten Datenmengen zu erreichen.
Gruß Daniel

Anzeige
AW: Update Usedrange nach .Removeduplicates
13.08.2014 13:26:51
Robert
Hallo Daniel,
Hmm, also Zellen löschen (.Delete) erzeugt ein sofortiges Update der UsedRange.
Das Problem ist, dass bei .RemoveDuplicates offenbar die Zellen nicht gelöscht werden!
Speichern bringt keine Besserung, Frage daher weiterhin offen!
Viele Grüße
Robert

AW: Update Usedrange nach .Removeduplicates
13.08.2014 13:50:15
Daniel
Hi
wie gesagt, RemoveDuplicates nimmt keine Anpassungen vor, sondern entfernt einfach nur die Inhalte.
das ist der Preis für die Geschwindigkeit.
dann musst du deine letzte befüllte Zeile anders ermitteln, bspw mit Cells(1, x).End(xlup).Row in einer Spalte, die auf jeden Fall befüllt ist.
oder du löschst die Duplikate mit Delete
das ist dann zwar etwas aufwendiger, aber wenn man es richtig macht auch nicht viel langsamer als das Removeduplikates
1. Sortiere die Daten nach der Kriteriumsspalte, so dass Duplikate direkt untereinander stehen
2. kennzeichne in einer Hilfsspalte per Formel alle Duplikate die gelöscht werden müssen mit 1 und alle die stehen bleiben sollen mit dem Blank "" Formel: =Wenn(A1=A2;1;"")
3. ersetze die Formel durch ihre Werte
4. sortiere die Liste nach der Hilfsspalte
5. wähle die Zeilen mit 1 (SpecialCells(xlcelltypeconstants, 1) und lösche diese mit .EntireRow.Delete
damit hast du das Delete das du brauchst und das ganze ist auch nicht viel langsamer als das RemoveDuplicates (im Sortieren ist Excel sehr schnell)
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige