Ich vermute, dass die 20-30K-Anrufe InStr(UCase())
das Problem sind. Ich schlage vor, dass Sie ein paar Helfer-Spalten definieren. Zum Beispiel, wenn Ihre "CallNummer" - und "Destination" -Daten in Spalten A
und B
, sind gesetzt
Y1
→=IFERROR(SEARCH("store", A1), 0)
Z1
→=IFERROR(SEARCH("221", B1), 0)
und ändern Sie dann Ihren VBA-Code, um zu prüfen, ob und welche . Auf diese Weise wird die String-in-String-Überprüfung immer dann durchgeführt, wenn die Daten "callNummer" und "Destination" geändert werden und die VBA-Routine weniger Arbeit erfordert. Natürlich können Sie die Helper-Spalten ausblenden, wenn Sie alles zum Laufen gebracht haben.Yn
Zn
> 0
Ich weiß nicht genau, wie Sie Ihre Aussagen in dieses Framework umsetzen sollen.pvtItemN.Visible = …
Aber auch wenn dies nicht funktioniert, können Sie den InStr(UCase(pvtItem2), "221")
Test in ändern InStr(pvtItem2, "221")
. Wenn Sie nur nach einer Zahl suchen, gibt es keinen Grund, den alphabetischen Inhalt der Zelle in Großbuchstaben umzuwandeln.