Suchfunktion beschleunigen
09.01.2023 10:38:08
Thomas
ich habe eine Suchfunktion geschrieben und Markiere in einer Listview die Treffer farblich. Das ganze funktioniert auch erstmal. Die Listview hat etwas 200 Zeilen und 6 Spalten. Das ganze dauert mehrere Sekunden, abhängig davon, wie lange der Suchbegriff ist. Hat jemand Ideen, wie man den Code beschleunigen kann. Macht es vielleicht Sinn die Werte der Listview beim initialisieren auch in ein array zu schreiben, welches ich dann später durchsuche?
Sub ListviewSuche(meineListview As Listview, Wert As String)
Dim i As Integer
Dim j As Integer
Dim AnzahlZeilen As Integer
Dim AnzahlSoalten As Integer
AnzahlZeilen = meineListview.ListItems.Count
AnzahlSpalten = meineListview.ColumnHeaders.Count
For i = 1 To AnzahlZeilen
If InStr(meineListview.ListItems.Item(i).Text, Wert) Then
meineListview.ListItems(i).ForeColor = vbRed
Else
meineListview.ListItems(i).ForeColor = vbBlack
For j = 1 To AnzahlSpalten - 1
If InStr(meineListview.ListItems(i).SubItems(j), Wert) Then
meineListview.ListItems.Item(i).ListSubItems(j).ForeColor = vbRed
Else
meineListview.ListItems.Item(i).ListSubItems(j).ForeColor = vbBlack
End If
Next j
End If
Next
End Sub