Ich habe eine andere Frage, obwohl die letzte, die ich gestellt habe, noch aussteht. Ich habe große Datenmengen von über 100.000 Datensätzen. Ich benutze den folgenden Code, um die Daten zu durchlaufen, so dass bei doppelten Datensätzen die Hintergrundfarbe rot wird. Der Code funktioniert einwandfrei, die Verarbeitung dauert jedoch derzeit viel zu lange (15-20 Minuten). Meine Frage ist: Kann ich irgendetwas tun, um den Prozess zu beschleunigen?
Der Code:
Dim wks As Worksheet, wrkb As Worksheet
Dim rng As Range, rngNew As Range
Dim intCount As Integer, intCount1 As Integer
Dim i As Integer, im As Integer
'Sheet1
Set wks = Worksheets("sheet1")
wks.Range("B2").Activate
'sheet2
Set wksb = Worksheets("sheet2")
' Return current data region.
Set rng = wks.Range("B1").CurrentRegion
Set rngNew = wksb.Range("B1").CurrentRegion
intCount = rng.Rows.Count
intCount1 = rngNew.Rows.Count
For i = 2 To intCount
im = 2
For im = 2 To intCount1
If (rng.Cells(im, 2).Value = rngNew.Cells(i, 2).Value) Then
rng.Cells(i, 2).Interior.ColorIndex = 3
Exit For
End If
Next im
Next
Danke für deine Hilfe
Eine Hilfsspalte in einem Ihrer Blätter sollte dies mit einem tun
COUNTIF
Formel zum Zählen der Anzahl der Einträge, die einer Bedingung im anderen Blatt entsprechen. Fügen Sie dann ein Bedingungsformat hinzu, das die Zellen rot färbt, wenn die Formel & gt; 0 zurückgibt.Und was @teylyn über VBA sagt, ist ganz richtig - es ist zu vermeiden, wenn Sie es mit einer Funktion tun können.
quelle