我正在尝试自动化一些报告生成工作,其中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
的公共变量。来自Utilities
模块的Userinfo
子过程填充user
。这两个程序在VBA中都能成功运行。我想在我的Excel VBA中访问user
变量,但是我得到了以下错误:
我该如何在Excel VBA中访问Word VBA变量?我认为它们基本上是相同的?编译错误:此上下文中尚未创建变量。
编辑:
user
变量是用户定义的具有仅String
属性的Type
。复制填充user
变量的Word VBA函数绝对是可行的,但比我认为的更费力……
UserInfo
转换为一个函数,并赋予它一个可分配给 Excel 变量的返回值。 - SierraOscarUserInfo
是内置在模板中的,我无法篡改它... - Holene