有没有办法在函数执行期间更改 Excel 应用程序/工作簿的语言?我面临的问题如下:
在我的组织中,当然有很多工作必须在 Excel 表格中显示。我们有函数(用 APL 编写)来完成大部分计算,然后将结果导出到 Excel 工作表。我们现在面临的问题是,我们的代码功能取决于用户的语言设置,因为我们在以下示例中遇到错误。
假设我们要将值 1 放入范围 A1:B2 和 A5:B10 中,我们可以通过一个命令来完成此操作
ActiveSheet.Range[⊂'A1:B2;A5:B10'].Value2←1
如果 Excel 是德语,则效果很好,但在我将 Excel 切换为英语后,出现错误。问题出在分号“;”上代码中的内容是根据德国设置编写的。当我将其更改为逗号时
ActiveSheet.Range[⊂'A1:B2,A5:B10'].Value2←1
我设法让它以英语工作,但不能以德语工作。
所以我的问题是:是否可以在函数中获取和设置Excel的语言?如果不是德语,那么我会将其切换为英语,完成我的工作,最后将其切换回原来的状态。
我用 APL 编写了这个示例,因为它是我们使用的示例,但使用其他语言(例如 VB)的解决方案也可以,因为我猜这更像是一个 Excel 问题。
这是可行的,但它很痛苦,并且有很多警告。 对于 VBA,您必须使用类似以下内容:
Dim delimiter As String
' Determine the delimiter based on the Excel language
If Application.LanguageSettings.LanguageID(msoLanguageIDUI) = 1031 Then
' German Excel
delimiter = ";"
Else
' Default to English (or other languages that use commas)
delimiter = ","
End If
这只是一切的开始。 我想你会玩得很开心的。 享受吧。