这就是我想要做的事情:
我应该如何开始以及在哪里寻找示例?我有中级Excel VBA经验,但完全不熟悉跨应用程序和Word属性。
答案 0 :(得分:1)
正如KazJaw上面所说,作为中间VBA用户,您应该能够创建用户表单和相关代码,以便用户在您描述时选择Word文档。一旦你开始使用Word文档,就会有一些与Excel编码有所不同。
让我分享一下我对此的了解:
首先,确保已激活Word对象库:在“工具”菜单上,单击“引用”。在可用引用列表中,查找并选择相应的Microsoft Word对象库
据我了解,后期绑定只是指在分配值时声明对象类型。我不知道这是否会解决您的“错误访问系统注册表”问题。我通过首先将变量定义为通用对象来调用Word文档时使用了后期绑定:
Dim wdApp As Object
Dim wd As Object
然后定义我创建的对象:
On Error Resume Next
Set wdApp = GetObject(, "Word.Application") 'establishing the word application
If Err.Number <> 0 Then
Set wdApp = CreateObject("Word.Application")
End If
On Error GoTo 0
Set wd = wdApp.Documents.Open("C:\YourFilePath") 'establishing a file to use
完成后,您可以使用可用的命令开始操作Word,您可以在Web上的其他位置找到所有这些命令,或者使用编译器的提示(首先输入Word.Application.ActiveDocument.
}例如,您将看到可用于操作该文档的函数列表。以下是一些我使用之前定义的变量wd
来引用特定文档:
wd.Activate 'activate the word doc
wd.PrintOut 'printout the word doc
wd.FormFields("BundleNumber1").Result = sBundleNumber 'fill in a pre-established form field with data stored in the variable 'sBundleNumber'
wd.Close 'close the word doc
如果您选择文档的整个内容,我认为这应该是相当紧张的(类似Word.Application.ActiveDocument.SelectAllEditableRanges
,但如果您必须选择文档的子部分,您应该知道范围可以在Word中定义的方式与在Excel中定义的方式大致相同,但边缘不像Excel中的单元格那样整洁。我相信它们是由段落和中断定义的,但您必须研究如何完成此操作:我从来没有这样做过。
希望这对您创建代码有所帮助,然后社区可以对其进行争论(如有必要)。