从EXCEL发送VARIABLES到WORD

时间:2015-01-19 11:06:29

标签: vba excel-vba ms-word word-vba excel-2003

我有这个复杂的 excel 文件,可以调用(打开) doc 文件。

现在我希望能够更改单词文件的一部分(不会仅对字符串进行格式更改)。

我的想法是:

  1. excel 文件会为每行创建 txt 文件 代表“vars”我希望发送到

  2. 在打开单词时, DOC 会执行一个读取每个行表单的宏 txt 并为 var 执行REPLACE。

  3. 我认为 doc 上的 vars 是这样的:

    Bla bla bla bla ?! - 1 - !? bla bla bla bla ....? - - 2 - !?

    ?! - 1 - !??! - 2 - !?是替换为 txt <的第1行和第2行的变量/ strong>文件

    我的问题是

    1. 这是愚蠢的吗?
    2. 有更好的方法吗?
    3. 最重要的是,有更简单的方法吗?
    4. :我很擅长 excel 2003 的vba, word 2003 的vba新手。有关使用 vba word 上的文件的帮助的任何链接?

      TL; DR: 最简单的方式将文本变量从Excel发送到word

3 个答案:

答案 0 :(得分:1)

  1. 我不会说这是愚蠢的。这是解决这个问题的可能方法之一:)
  2. 可能有更好的方法......
  3. 可能有一种更简单的方法......
  4. ...遗憾的是我不能给你实际的代码。 但我建议你去工具&gt;引用,并启用“Microsoft Word对象库”。如果您探索Word库,我相信您将能够找到一种在这些应用程序之间传输数据的简洁方法。 您还可以查看以下链接: Copy Text from Range in Excel into Word Document

    抱歉,我无法提供更多帮助。

答案 1 :(得分:1)

您的想法很好,但是当您要向其发送信息的应用程序“不允许访问”时,您可以使用此功能。 MS Office的好处是你可以实现自动化。所以我建议你从Excel中自动化Word。

首先,您应该在Excel项目中添加对“Microsoft Word对象库”的引用。 第二,要获得消息,你需要在excel代码中使用这样的东西。

On Error Resume Next
   Set objWord = GetObject(, "Word.Application")
   If Err.Number = 429 Then
      'Word is not running; creating a Word object
      Set objWord = CreateObject("Word.Application")
      Err.Clear
   End If

接下来让你的word文档像这样;

Set objDocs = objWord.Documents
objDocs.add("Path to your Word Documenbt")
Set myDoc = objWord.ActiveDocument

接下来我选择使用CustomDocumentProperties

Set prps = objWord.ActiveDocument.CustomDocumentProperties
prps.item("YourCustomName").Value = "Your Variable from Excel"

很难设置你的word文档,所以这里有一些关于我在这里建议的链接或教程。

How to add CustomDocumentProperties Microsoft Example of how to use CustomDocumentProperties in VBA

答案 2 :(得分:1)

你有没有在MS Word中查找邮件合并?试着想象一下Excel电子表格中的数据填写MS Word中的一个套用信函。根据您的描述,听起来您的Word中的变量可以转换为邮件合并字段。这些字段的数据似乎存储在Excel电子表格中。

如果您正在寻找邮件合并,您可以在单独的行中存储多个数据迭代,并使用单词&#39;邮件合并查询功能只打印/准备您需要的内容。