/ / Ersatzfunktion Deutsch - Excel, VBA, Excel-VBA, Excel-Formel

Ersatzfunktion Deutsch - Excel, VBA, Excel-VBA, Excel-Formel

Ich habe eine Ersatzfunktion manuell alle verwendetDie Zeit, die reibungslos funktionierte, aber sehr langsam war. Daher möchte ich es jetzt in ein Makro ändern, aber wenn ich versuche, es in meinen Code einzufügen, funktioniert es nicht. Nur ein Teil des Codes befindet sich in der rechten Zeile des Entwicklers (hier im Stackoverflow funktioniert es so gut wie möglich siehe unten) und der Rest der Funktion wird in die nächsten Zeilen eingefügt.

Das ist mein Code:

Tabelle1.Range("H2:H20001").Formula.Local =
"=WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WECHSELN(
WENN(G2=""___"";""___"";GROSS2(F2));
""Mr "";"""");
""Mrs "";"""");
""Dr. "";"""");
""Mba "";"""");
""Di "";"""");
""MSc "";"""");
""Msc "";"""");
""Kr "";"""");
""Gp%"";""general partner"");
""mbh"";""mbH"");
""Mbh"";""mbH"");
""M.B.H."";""m.b.H."");
"" Kg"";"" KG"");
"" Ag "";"" AG "");
"" Og "";"" OG "");
"" Sa "";"" SA "");
"" Se "";"" SE "");
"" Ab "";"" AB "");
"" Inc"";"" Inc."");
"" Ltd"";"" Ltd."");
""D.O.O."";""d.o.o."");
""S.R.L."";""S.r.l."");
""S.Ar.l."";""SARL"");
"" Sarl"";"" SARL"");
""S.P.A."";""S.p.A."");
"" Spa"";"" S.p.A."");
""S.p.A.r"";""Spar"");
"""S"";"""s"");
""Self Owned"";""Self-Owned"");
""Oesterreich"";""Österreich"");
""Oö"";""OÖ"");
""Nö"";""NÖ"");
""Aws"";""AWS"");
""Foerderung"";""Förderung"");
""Mit "";""mit "");
""Beschränkt"";""beschränkt"");
"" Innovative"";"" innovative"");
""Und "";""und "");
""Von "";""von "");
""Für "";""für "");
""Zur "";""zur "");
""Der "";""der "");
""Des "";""des "");
""Das "";""das "");
""U. "";""u. "");
""Buergerlich"";""bürgerlich"");
""Bürgerlich"";""bürgerlich"");
"".At"";"".at"");
"".De"";"".de"");
"".Ch"";"".ch"");
"".Se"";"".se"");
""Ii"";""II"");
""Iii"";""III"");
"" Llp"";"" LLP"");
"" Fp Lp"";"" FP LP"");
"" Bl.P"";"" BL.P."")"

Weiß jemand, wie ich das zum Laufen bringen kann? Ich habe auch gefunden https://stackoverflow.com/a/36384529/9456216 Diese Lösung für ein ähnliches Problem (ich habe nicht mehr 64 Nest), aber ich habe nicht herausgefunden, wie ich sie auf meinen Fall anwenden soll.

Antworten:

2 für die Antwort № 1

Dies ist der erste Schritt mit VBA (Hier erfahren Sie, wie Sie benutzerdefinierte Funktionen in VBA erstellen):

Option Explicit

Public Function ReplacingForFun(rangeToReplace As Range) As String

Dim changeFrom      As Variant
Dim changeTo        As Variant
Dim returnString    As String

Application.Volatile

returnString = rangeToReplace.Value2
changeFrom = Array("Mr", "Gp%")
changeTo = Array("", "general partner")

Dim cnt

For cnt = LBound(changeFrom) To UBound(changeTo)
returnString = Replace(returnString, changeFrom(cnt), changeTo(cnt))
Next cnt

ReplacingForFun = returnString

End Function

Wie Sie sehen, definieren Sie zwei Arrays: changeFrom und changeTo. Jede Position des Arrays sagt entsprechend, was in was geändert werden soll. Somit Mr würde in geändert werden "" und Gp% zu general partner.

Es funktioniert so:

Bildbeschreibung hier eingeben

Als zweiten Schritt ist es eine gute Idee, die zu definieren, wenn Sie einige Best Practices befolgen möchten Arrays in bestimmten Bereichen wäre es daher einfacher zu warten.