Ich versuche zu beschleunigen, wie mein Programm nach Zeichenfolgen in einem Array sucht. So schreibe ich zum Beispiel ein Programm, das in einer Spalte von 1000 zufälligen Wörtern nach dem Wort "test" sucht.Was ist der String-Vergleichsalgorithmus von VBA?
Derzeit mein Programm ist ein einfaches:
If Cells(x,1).Value = "test" Then
...
End If
aber hier ist meine Idee,
If Left(Cells(x,1).Value,1) = "t" Then
If Left(Cells(x,1).Value,2) = "te" Then
... and so on ...
End If
Aber dann begann ich, wenn sich zu fragen, wenn ich für VBA
bitten zu prüfen, um zu sehen, ob die value = "test"
, geht es durch den Prozess, den ich in diesem zweiten Code umrissen habe? Grundsätzlich ist meine Frage, ist der zweite Code überflüssig? Ich bin nicht vertraut damit, wie VBA inhärent nach ganzen übereinstimmenden Strings sucht. Wenn jemand aufklären könnte, was VBA durchmacht, wenn ich es frage, nach einem Value = "string"
zu suchen, könnte es wirklich helfen. Vielen Dank!
Warum verwenden Sie nicht einfach die Methode 'Range.Find'? –
oder 'Match' Funktion? Wenn Sie sich die Optimierung ansehen, gibt es sicherlich bessere integrierte Möglichkeiten, als sich auf die zellweise Iteration von Brute-Force zu verlassen. –
Jeder Vorteil, der das Fenster verlassen könnte, sobald Sie die Zelle wiederholt zu lesen beginnen - der Aufwand, zum Blättern zu gehen, um einen Wert zu lesen, ist vergleichsweise groß, so dass das immer wieder vorbei ist, ist keine gute Richtung. –