注意:与断言相反,这个问题is not重复的。我的问题被标记为 ms-word,并且提出的建议指向 ms-excel 答案,在本例中该答案不适用。 Word VBA!= Excel VBA。
我需要让德国的用户生成英语 Word 2016 文档,但日期以欧洲风格显示,并带有德语月份和日期名称。我们需要它们以英文日期样式和名称的形式出现。
我知道内容控件和日期选择器,尽管目前这不是一个选项(可能在将来)。更改当地的区域设置也不是一个选择(显然是德语)。由于一些遗留原因,我们仅限于 .DOC 格式,在此我不再赘述。
发生在 VBScript 函数 GetLocale 和 SetLocal 中。在 VBScript 环境中完美运行...
问题是我如何能够将 VBScript 作为 DLL 引用并在 Office VBA 模块中使用该功能?不幸的是,它没有内置到 Office VBA 中。
我尝试从 SYsWow64 文件夹引用 VBScript.dll,但它公开的唯一内容是 VBScript_Global.GlobalObj 和 SetLocale、GetLocale 不可用(最新文档中仍然引用了它,但并未弃用。https://msdn.microsoft.com/en-us/library/5xf99h19(v=vs.84).aspx).
任何帮助将不胜感激。
这就是我写的答案。
Public Function printDateByLocale(inputDate As Date, inputlocale As String) As String
Dim codeString As String
Dim scriptControl As Object
Set scriptControl = CreateObject("MSScriptControl.ScriptControl")
codeString = "Function getDateByLocale(myDate, locale)" & vbCrLf & "SetLocale locale" & vbCrLf & "getDateByLocale = FormatDateTime(myDate, vbLongDate) End Function"
With scriptControl
.Language = "VBScript"
.addCode codeString
printDateByLocale = .Run("getDateByLocale", inputDate, inputlocale)
End With
Set scriptControl = Nothing
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)