我一直手动使用替代功能,但是工作顺利,但速度很慢。因此,我想将它现在更改为宏,但是当我尝试将其插入到我的代码中时,它无法正常工作;只是一些代码在开发人员的正确行中(这里在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个嵌套),但还没弄明白如何将它应用到我的案例中。
答案 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
如您所见,您正在定义两个阵列,changeFrom
和changeTo
。数组的每个位置都相应地说应该改变什么。因此,Mr
将更改为""
和Gp%
更改为general partner
。
它的工作原理如下:
作为第二步,如果您想要遵循一些最佳实践,那么在特定范围内定义Arrays
将是一个好主意,因此维护起来会更容易。