2013-08-28 66 views
1

文本Word文档这就是我要做的:使用Excel 2010 VBA来创建一个包含从多个Word文件

  • 我有一个Excel工作表中,用户可以选择一些关键字。
  • 对于每个关键字,都有一个单独的Word文档,其中包含一些与该关键字有关的文本。
  • 做出选择后,我希望用户点击一个命令按钮,然后创建一个新的Word文档。
  • 这个新的Word文档将包含从对应的Word文档中选择的关键字和文本。样式和格式化生成的Word文档并不重要。将不同文本与不同文档分开的空白行就足够了。
  • 我想我已经麻烦VBA添加引用(错误访问系统注册表)

我应该如何开始,到哪里找例子来做到这一点与后期绑定?我有中级Excel VBA经验,但完全不熟悉跨应用程序和Word属性。

+1

“中级Excel VBA体验”,您可以自行编写50%的代码。做到这一点,并回到这里与你会遇到的问题。作为'Excel-Word interop'的一个良好开端,请在SO:'[excel-vba] [word-vba]'这里的搜索引擎中输入以下内容,然后按回车。一半的结果将是一个好的开始点。 –

回答

1

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

让我分享我知道这个小:

首先,确保你已经激活Word对象库:在工具菜单上,单击引用。在可用引用列表中,找到并选择适当的Microsoft Word对象库

据我所知,迟绑定只是在分配值时声明对象类型。我不知道这是否会解决您的'错误访问系统注册表'问题。我已经使用后期绑定,当我打电话Word文档通过先定义一个变量作为一个通用对象:

Dim wdApp As Object 
Dim wd As Object 

然后确定我创建的对象(S):

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中的单元格整齐。我相信他们是由段落和中断来定义的,但是你必须研究这是如何完成的:我从来没有做过。

希望这对你有帮助,可以创建一个代码,然后b e由社区争辩(如有必要)。

相关问题