Range.Formula属性是否转换为其他语言环境

时间:2018-01-03 21:10:53

标签: excel excel-vba excel-formula vba

当用户在英文版Excel中的工作表中手动输入公式并将此文档发送给另一个版本中具有Excel的用户时,公式将自动转换为文档打开的语言。

'Formula entered in Sheet1!B1 in the English Excel version
=VLOOKUP(A1,Sheet2!$A$1:$C$150,3,FALSE)
'Formula as shown in a Dutch Excel version
=VERT.ZOEKEN(A1;Sheet2!$A$1:$C$150;3;ONWAAR)

当我以编程方式添加公式时,在我的英文版本中,它将如下所示:

Sub AddFormula()
    ThisWorkbook.Worksheets("Sheet1").Cells(1, 2).Formula = "=VLOOKUP(A1,Sheet2!$A$1:$C$150,3,FALSE)"
End Sub

如果我在我的英文版本上运行此程序,然后保存文档并将其发送给使用其他语言的用户,那么公式就在单元格中就可以了,因此可以翻译成任何语言和语言环境。第二位用户使用。

我的问题是当第二个用户以荷兰语(或其他语言)Excel运行程序时会发生什么,其中包含以EN-US格式编写的代码中的公式。它会被翻译还是会引发错误?如果是后者,我将如何解决这个问题并使公式插入语言得到证明?

1 个答案:

答案 0 :(得分:9)

在Excel vba中,.Formula要求插入的公式为EN-USA格式。这与本地设置无关。

然后,当Excel将其放入工作表时,Excel会将其翻译成本地白话。

因此,无论本地设置如何,它都可以跨语言工作。

VBA还有.FormulaLocal,允许以母语输入公式。但是(据我所知)它不适用于不同的本地设置。