gpt4 book ai didi

vba - 在 VBA Excel 中设置工作簿语言

转载 作者:行者123 更新时间:2023-12-04 20:31:03 25 4
gpt4 key购买 nike

我有一个工作簿,可以复制给具有不同区域语言设置的不同用户。

我遇到的问题是,由于区域设置,我构建的一些宏无法工作,因为它们引用了翻译后的值。

示例是日期名称和年份的值。
(贾尔年。)

 ActiveSheet.PivotTables("OpenPO").PivotFields("Years").ShowDetail = False

这指的是原始工作簿中名为 Year 的数据透视表中的选定数据。但是,这会自动翻译成用户的语言。

为了解决这个问题,我希望我可以锁定或设置这种特定的工作簿语言。

不幸的是,这不是一种选择,
复制前运行宏,
为每个用户设置区域设置,
为每个用户设置 Excels 区域设置,
为每种语言重写宏。

我一直在寻找很长时间才能找到解决方案,但还没有找到答案。我真的希望这里有人可以帮助我。

我最想要的解决方案是一个简单的 VBA 代码来设置工作簿的语言。

最佳答案

在示例中,您将“Years”作为字符串传递:

 ActiveSheet.PivotTables("OpenPO").PivotFields("Years").ShowDetail = False

如果荷兰语 Excel 需要 Jaar ,那么你需要一些具体的方式来告诉它。例如。:
Option Explicit

Public Sub TestMe()

Dim yearIndependent As String

Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI)
Case 1043: 'Dutch
yearIndependent = "Jaar"
Case 1031: 'German
yearIndependent = "Jahr"
Case Else: 'English (default)"
yearIndependent = "Year"
End Select

ActiveSheet.PivotTables("OpenPO").PivotFields(yearIndependent).ShowDetail = False

End Sub

如您所见,您必须重写整个代码。好消息是没有那么多与语言相关的单词,因此您可以使用一些 MVC architecture ,把单词写在一张纸上,然后从那里读出来。如果你在一个函数中导​​出逻辑,返回正确的字符串,它会很容易消化。
  • Some good reading about it - RonDeBruin.nl
  • 关于vba - 在 VBA Excel 中设置工作簿语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50759837/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com