语言无关的公式

时间:2018-01-24 14:41:32

标签: excel vba excel-vba excel-formula

我想准备一个包含一些公式的概述选项卡,但并非所有同事都使用en-us版本的Excel - 我目前使用的是de-at语言包。因此我开始使用.FormulaLocal,但它在我的情况下不太适用

在这个例子中,我尝试准备一个公式,该公式总结了各种标签中的所有“轻”错误。我有两个版本

版本1 (适用于de-at Excel)

Sub count_light_errors(tabName)
Dim element As Variant
Dim formula As String
Dim temp As Variant

For Each element In tabName
    temp = temp & "zählenwenn(" & element & "!E:E;""light"");"
Next element

formula = "=summe(" & Left(temp, Len(temp) - 1) & ")"
Worksheets("Overview").Range("C8").FormulaLocal = formula

End Sub

版本2 (不适用于退出Excel)

Sub count_light_errors(tabName)
Dim element As Variant
Dim formula As String
Dim temp As Variant

For Each element In tabName
    temp = temp & "countif(" & element & "!E:E,""light""),"
Next element

formula = "=sum(" & Left(temp, Len(temp) - 1) & ")"
Worksheets("Overview").Range("C8").FormulaLocal = formula

End Sub

这两者之间的区别仅在于使用德语单词

  • SUM() - >郑树森()
  • COUNTIF() - > ZÄHLENWENN()

和 ;而不是作为分隔符

如何正确准备公式,以便它们独立于用户语言包?

万分感谢! -Claus

1 个答案:

答案 0 :(得分:3)

VBA非常以EN-US为中心。 VBA&.F; 39.Formula和.FormulaR1C1期望ROW功能。使用区域语言功能' flavors'和SUMME一样,应该使用Range.FormulaLocal属性或Range.FormulaR1C1Local属性。

因此,不要使用.FormulaLocal而只使用带有EN语言的.Formula,您的代码将以各种语言进行解释。