在英语和德语Excel中使用相同的VBA代码 - 预期的函数或变量

时间:2016-12-19 10:57:13

标签: excel vba excel-vba macros

我已在英文版的Excel 2016 for Windows中创建了一个vba代码。 我试图在适用于Mac的德语版Excel 2011和2016中运行代码,但两者都不起作用。

我收到子功能正在等待变量或功能的错误。

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

  1. IFNA()不是Excel for Mac中的可用功能 - 所以我删除了它。
  2. 我使用INDEXMATCH个函数。 MATCH在德语Excel中被翻译为 VERGLEICH ,因此无法识别该功能。
  3. 这行代码也会导致问题,似乎Range().ActivateRange().Select也无法识别。

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

  4. 最后两个问题中的任何想法或指导都会非常有用。

    由于

1 个答案:

答案 0 :(得分:0)

6个月后,我在谷歌搜索StackOverflow中的一个问题,我给了一个有用的评论。就像过去自己得到帮助一样:))

一般来说:

Application.DecimalSeparator

如果您在非英语Excel VBA中连接字符串公式,

将保存您。

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)