Mam inne pytanie, mimo że ostatnie pytanie, które zadałem, jest nadal w toku. Mam duże dane ponad 100 000 rekordów. Korzystam z poniższego kodu, aby przeglądać dane tak, aby każdy zduplikowany rekord miał kolor tła zmienił się na czerwony. Kod działa dobrze, ale jego przetwarzanie zajmuje obecnie zbyt dużo czasu (15–20 minut). moje pytanie brzmi: czy mogę coś zrobić, aby proces ten był szybszy?
Kod:
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
dzięki za pomoc
Powinna to zrobić kolumna pomocnika w jednym z arkuszy, używając
COUNTIF
formuły do zliczenia liczby wpisów pasujących do warunków w drugim arkuszu. Następnie dodaj format warunkowy, farbując komórki na czerwono, jeśli formuła zwróci> 0.To, co @teylyn mówi o VBA, jest całkiem słuszne - należy tego unikać, jeśli można to zrobić za pomocą funkcji.
źródło