替代函数德语

时间:2018-03-23 10:29:03

标签: excel vba excel-vba excel-formula

我一直手动使用替代功能,但是工作顺利,但速度很慢。因此,我想将它现在更改为宏,但是当我尝试将其插入到我的代码中时,它无法正常工作;只是一些代码在开发人员的正确行中(这里在stackoverflow中它可以正常工作,如下所示),其余的函数将粘贴到下一行。

这是我的代码:

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

有人知道我怎么能让这个工作?我也发现了https://stackoverflow.com/a/36384529/9456216这个解决类似问题的解决方案(我没有更多64个嵌套),但还没弄明白如何将它应用到我的案例中。

1 个答案:

答案 0 :(得分:2)

这是VBA(see how to build custom functions in VBA here)的第一步:

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

如您所见,您正在定义两个阵列,changeFromchangeTo。数组的每个位置都相应地说应该改变什么。因此,Mr将更改为""Gp%更改为general partner

它的工作原理如下:

enter image description here

作为第二步,如果您想要遵循一些最佳实践,那么在特定范围内定义Arrays将是一个好主意,因此维护起来会更容易。