正如 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,所有这些命令您应该能够在网络上的其他地方找到,或者使用编译器的提示(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 中的单元格那样整齐。我相信它们是由段落和中断定义的,但你必须研究这是如何完成的:我从来没有这样做过。
希望这对您创建一个可以被社区争论(如果需要)的代码有所帮助。