如何在不同的语言环境中停止Excel以重命名工作表函数

时间:2013-10-22 13:00:55

标签: excel-vba localization excel-formula vba excel

情况如下。我有一个我在美国开发的Excel工作表,除工作表函数CONVERT()外,还使用了一些VBA代码(可用于分析插件,用于转换单位)。我将工作表发送到德国进行填写,当我收回它时,它已将我的转换功能重命名为UMWANDELN(),这打破了我在美国的工作表。

我的问题是,如果我写一个VBA包装器到WorksheetFunction.Convert()并使用它而不是单元格公式=CONVERT(),德国办公室是否会破坏它,因为转换将不可用。 WorksheetFunction.Umwandeln()会有空吗?我试着错误捕捉?

那么,如果我需要依赖CONVERT()功能,如何让我的工作表在美国和德国都可用?是否有VBA解决方案,还是我被卡住了?

另一种解决方法是重新编写我自己的转换单元功能,这可能是我所有不同组合的麻烦。

1 个答案:

答案 0 :(得分:2)

我目前的解决方法(不是最好的)是通过调用

替换所有对=CONVERT()的调用
Public Function ConvertUnit(ByVal value As Double, ByVal from_unit As String, ByVal to_unit As String) As Variant
    ConvertUnit = WorksheetFunction.Convert(value, from_unit, to_unit)
End Function
它似乎在从美国到德国的往返旅程中幸存下来。我希望社区能够更深入地了解情况并提出如此新颖的解决方案。