/ / Náhradná funkcia nemčina - vynikajúci, vba, vynikajúci-vba, vynikajúci vzorec

Náhradná funkcia nemčina - vynikajúci, vba, vynikajúci-vba, vynikajúci vzorec

Všetky náhradné funkcie som použil manuálnečas, ktorý fungoval hladko, ale bol veľmi pomalý. Preto ho chcem teraz zmeniť na makro, ale keď sa ho pokúsim vložiť do svojho kódu, nefunguje; iba časť kódu sa nachádza v pravom riadku vývojára (tu v stohu toku funguje, ako môžete) pozri nižšie) a zvyšok funkcie sa vloží do ďalších riadkov.

Toto je môj kód:

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."")"

Vie niekto, ako môžem zaistiť, aby to fungovalo? Tiež som to našiel https://stackoverflow.com/a/36384529/9456216 toto riešenie pre podobný problém (nemám viac 64 hniezd), ale ešte som nezistil, ako ho uplatniť v mojom prípade.

odpovede:

2 pre odpoveď č. 1

Toto je prvý krok s VBA (tu nájdete, ako zostaviť vlastné funkcie vo VBA):

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

Ako vidíte, definujete dve polia, changeFrom a changeTo, Každá pozícia poľa hovorí zodpovedajúcim spôsobom, čo by sa malo zmeniť. teda Mr by sa zmenilo na "" a Gp% na general partner.

Funguje to takto:

tu zadajte popis obrázku

Ako druhý krok, ak sa chcete riadiť niektorými osvedčenými postupmi, bolo by dobré definovať Arrays v konkrétnych rozsahoch, preto by bolo ľahšie sa udržiavať.