在英文和德文Excel中使用相同的VBA代码 – 期望的函数或variables

我已经在英文版Excel 2016 for Windows中创build了一个vba代码。 我试图运行在德国版本的Excel 2011和2016年的Mac版本的代码,但都不工作。

我收到一个错误,该子function正在等待一个variables或函数

试图debugging真正的问题,似乎有三个问题:

  1. IFNA()不适用于Mac的Excel中的可用函数 – 所以我删除了它。
  2. 我正在使用INDEXMATCH函数。 MATCH在德语Excel中被翻译成VERGLEICH ,所以function不被识别。
  3. 这行代码也会引起问题,看起来像Range().ActivateRange().Select也不能被识别。

    x = Range("A" & insert_at).Activate

在最后两个问题中的任何想法或指导将是非常有帮助的。

谢谢

6个月后,我在StackOverflow中search了一个有用的评论。 就像在过去一样得到你自己的帮助:)

一般来说:

Application.DecimalSeparator

如果您在非英文Excel VBA中连接string公式,将节省您的时间。


Selection.Formula将返回英文公式:

=VLOOKUP("Something",[VIT.xlsx]Monatsbericht!C2:C5,2,0)


Selection.FormulaLocal将返回本地Excel语言中的公式(在这种情况下为德语):

=SVERWEIS("Something";[VIT.xlsx]Monatsbericht!C2:C5;2;0)


Selection.FormulaR1C1将以英文返回R1C1格式的公式:

 =VLOOKUP("Something",[UHL.xlsx]Monatsbericht!R[-15]C[-1]:R[-12]C[-1],2,0) 

Selection.FormulaR1C1Local将以本地语言返回R1C1格式的公式:

 =SVERWEIS("Something";[UHL.xlsx]Monatsbericht!Z(-15)S(-1):Z(-12)S(-1);2;0)