gpt4 book ai didi

vba - 如何在Excel VBA中访问Word公共(public)变量

转载 作者:行者123 更新时间:2023-12-01 19:49:45 26 4
gpt4 key购买 nike

我正在尝试自动生成一些报告,其中 Excel VBA 正在完成所有工作。我的雇主有一套标准化的模板,所有文档都应该从中生成。我需要从 Excel VBA 填充这些模板之一。 Word 模板广泛使用 VBA。

这是我的(部分)Excel VBA 代码:

Sub GenerateReport() ' (Tables, InputDataObj)
' code generating the WordApp object (works!)

WordApp.Documents.Add Template:="Brev.dot"

' Getting user information from Utilities.Userinfo macro in Document
Call WordApp.Run("Autoexec") ' generating a public variable
Call WordApp.Run("Utilities.UserInfo")
' more code
End sub

在 Word VBA Autoexec 模块中,定义并声明了一个名为 user 的公共(public)变量。 Utilities 模块中的 Userinfo 子项填充 user。这两个例程的运行都没有受到 VBA 的任何提示。然后我希望能够访问 Excel VBA 中的 user 变量,但出现以下错误

Compile Error: Variable not yet created in this context.

如何在 Excel VBA 中访问 Word VBA 变量?我觉得或多或少是一样的?

编辑:user变量是用户定义的Type,仅具有String属性。复制填充 user 变量的 Word VBA 函数是绝对可行的,只是比我想象的需要做更多的工作...

最佳答案

在 Word 模块中:

Public Function GetUserVariable() As String '// or whatever data type
GetUserVariable = user
End Function

在 Excel 模块中:

myUser = WordApp.Run("GetUserVariable")
<小时/>

或者,您可以复制变量值 - 因为它被称为 user 我怀疑它正在返回有关文档的用户或作者的一些信息。在这种情况下,您可能需要执行以下操作之一:

'// Username assigned to the application
MsgBox WordApp.UserName

'// Username defined by the system
MsgBox Environ$("USERNAME")

'// Name of the author of the file specified
MsgBox CreateObject("Shell.Application").Namespace("C:\Users\Documents").GetDetailsOf("MyDocument.doc", 9)

关于vba - 如何在Excel VBA中访问Word公共(public)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34993589/

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