Ich mochte Jeepeds Antwort.
Die unten stehende Version arbeitet mit einigen Verbesserungen, um mit der Geschwindigkeit zu spielen:
Mid
als LHS-Operator (als Verkettung in VBA ist langsamer) Mid$
und ChrW$
Bei meinen Tests verringerte sich die Laufzeit um ~ 40% (siehe Änderungen unten)
%Vor%BEARBEITEN: Fügen Sie Tests hinzu
Abgleich auf hoher Ebene
Mid$
im ersten Code anstelle von Mid
führte zu einem Code von 3,21 bis 2,77 Sekunden. ChrW$
anstelle von Chr
hat es von 2,77 Sekunden auf 2,43 Sekunden gebracht. vorheriger Code
%Vor%neuer Code
%Vor%Testzeit
%Vor% Wie Jeeped sagte, können Sie die Chr
-Funktion verwenden, um eine Zahl in einen Buchstaben zu konvertieren, indem Sie ASCII verwenden.
Eine andere Anmerkung, wenn ich mit einer einzelnen Variablen arbeite, die mehrere Werte haben kann, anstatt so viel if
's zu verwenden, würde ich vorschlagen, ein case select
Modell zu verwenden, strarr(i)
als Controller zu verwenden Code und wäre viel besser lesbar.
Anstatt die verschiedenen Werte in Zellen zu schreiben, hätte ich auch eine temporäre Variable verwendet, um den aggregierten Wert zu speichern, weniger Aufwand für Sie und ein bisschen schneller, da Sie das Blatt nicht lesen / schreiben, sondern Sie arbeite einfach im Hintergrund