[VBA] Schneller Zellen-Inhaltsvergleich?

22/08/2007 - 08:23 von Michael Mueller | Report spam
Hi.

Ich muß zwei Tabellen abgleichen.
Dazu durchlaufe ich eine Schleife für die Zeilen und suche mir gleiche
Eintràge in Spalte 1. Danach vergleiche ich dann den Inhalt der Zellen jeder
Zeile und kopiere falls unterschiedlich die komplette Zelle samt
Formatierung. [Code siehe unten]

Für 6 Zeilen sind dies auf meinem Rechner ~ 1 Sekunde - da ich aber knapp
3000 Zeilen abgleichen muß làuft das Makro knapp 8 Minuten.

Nun habe ich mich gefragt ob mir jemand einen Tipp geben kann wie ich das
ganze beschleunigen kann?

Danke
Michi



[Code]

x = 1
Do Until Source.Cells(x, 1) = ""
HasFound = False
For y = 1 To 65536
If Destination.Cells(y, 1) = "" Then
If Not HasFound Then
Destination.Activate
'Zeile komplett kopieren
Source.Rows(x).Copy
Destination.Rows(y).PasteSpecial
End If
Exit For
ElseIf Source.Cells(x, 1) = Destination.Cells(y, 1) Then
HasFound = True
'nur geànderte Zellen kopieren
For z = 2 To 255
Destination.Activate
If Not Source.Cells(x, z) = Destination.Cells(y, z) Then
Source.Cells(x, z).Copy
Destination.Cells(x, z).PasteSpecial
End If
Next z
Exit For
end if
Next y
x = x + 1
Loop
 

Lesen sie die antworten

#1 Alexander Wolff
22/08/2007 - 08:51 | Warnen spam
Die Verwendung von Copy und Paste macht es so langsam.

Verwende intern Variablen (mit Dim ... 8000), weise denen die Ausgangswerte
zu und schreibe erst am Ende die Resultate in die Tabelle. Du wirst erstaunt
sein!

Moin+Gruss Alexander - MVP für MS Excel - www.xxcl.de - mso2000sp3 --7-2

Ähnliche fragen