当用户在英文版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
如果我在我的英文版本上运行此程序,然后保存文档并将其发送给使用其他语言的用户,这将是正常的,因为公式在单元格中,因此转换为第二个用户使用的任何语言和区域设置。
我的问题是当第二个用户使用EN-US格式编写的代码中的公式以荷兰语(或其他语言)Excel运行程序时会发生什么。它会被翻译还是会引发错误?如果是后者,我将如何解决这个问题并使公式插入语言证明?
在Excel vba中,.Formula
要求插入的公式为EN-USA格式。这与本地设置无关。
然后,当Excel将其放入工作表时,它会将其翻译成本地白话。
因此,无论本地设置如何,它都可以跨语言工作。
VBA还有.FormulaLocal
,允许以母语输入公式。但是(据我所知)它不会跨越不同的本地设置。