使用Excel 2010 vba创build一个由多个word文件组成的文本文档

这是我想要做的:

  • 我有一个Excel工作表,用户可以select一些关键字。
  • 对于每个关键字,都有一个具有相同名称的单个Word文档,其中包含有关关键字的一些文本。
  • 做出select后,我希望用户点击一个命令button,然后创build一个新的Word文档。
  • 这个新的Word文档将包含从对应的Word文档中select的关键字和文本。 样式和形成生成的Word文档并不重要。 将不同文本与不同文档分开的空白行就足够了。
  • 我想用Late Binding来做到这一点,因为在VBA中添加引用时遇到问题(访问系统registry时出错)

我应该如何开始,在哪里寻找例子? 我有中级Excel VBA经验,但完全不熟悉跨应用程序和Word属性。

正如KazJaw上面所说,作为一个中级VBA用户,您应该能够创build用户窗体和相关的代码,以便您的用户按照您的描述selectWord文档。 一旦你开始使用Word文档,与Excel编码有些不同。

让我分享一下我所知道的这个:

首先,确保您已经激活了Word对象库:在工具菜单上,单击引用。 在可用引用列表中,find并select适当的Microsoft Word对象库

据我所知,后期绑定只是在分配值时声明对象types。 我不知道这是否会解决您的“错误访问系统registry”的问题。 当我通过首先将一个variables定义为一个通用对象来调用Word文档时,我使用了后期绑定:

 Dim wdApp As Object Dim wd As Object 

然后定义我创build的对象:

 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上的其他地方find,或者使用编译器的提示(例如,先inputWord.Application.ActiveDocument.您将看到可用于操作该文档的function列表)。 这里有一些,我用一个以前定义的variableswd来引用一个特定的文档:

  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 

如果你正在select文档的全部内容,我认为这应该是相当的两岸(如Word.Application.ActiveDocument.SelectAllEditableRanges ,但如果你必须select文档的子部分,你应该知道范围可以是在Word中定义的方式与在Excel中定义的方式大致相同,但边缘不像Excel中的单元格那么整齐,我相信它们是由段落和断点定义的,但是您将不得不研究如何完成:从来没有做过。

希望这将有助于你创build一个代码,然后可以由社区(如果有必要)进行争吵。