【问题标题】:Sending VARIABLES from EXCEL to WORD将变量从 EXCEL 发送到 WORD
【发布时间】:2015-01-19 11:06:28
【问题描述】:

我有一个复杂的 excel 文件,它调用(打开)一个 doc 文件。

现在我希望能够更改 word 文件的一些部分(不更改格式,只更改字符串)。

我想做的是:

  1. excel 文件用每一行创建一个 txt 文件 代表我想发送到word“vars”

  2. 在开始词时,DOC 会执行一个宏来读取每一行格式 txt 并为该 var 执行替换。

我想在 doc 上有这样的 vars

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

?!-1-!??!-2-!?txt 文件

我的问题是

  1. 这很愚蠢吗?
  2. 有没有更好的方法?
  3. 最重要的是,有没有更简单的方法?

另外:我擅长 excel 2003 的 vba,word 2003 的 vba 新手。关于处理vba word上的文件的任何链接?

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

【问题讨论】:

  • 我现在没有时间测试它,但我很确定你可以以某种方式在 word 中调用宏并在那里传递变量。类似 `wordApp.Run "yourMacro(" & yourVar & ")" 的东西。
  • 只需使用 OLE(请参阅 support.microsoft.com/kb/184974)并从 Excel 中运行它。请参阅此答案以获得良好的链接:stackoverflow.com/q/7523102/1733206

标签: vba excel ms-word excel-2003


【解决方案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. 我不会说这很愚蠢。这是解决这个问题的可能方法之一:)
    2. 或许还有更好的办法……
    3. 可能有更简单的方法...

    ...不幸的是,我不能给你实际的代码。 但我建议您转到工具 > 参考,然后启用“Microsoft Word 对象库”。如果您探索 Word 库,我相信您将能够找到一种在这些应用程序之间传输数据的巧妙方法。 您还可以查看以下链接: Copy Text from Range in Excel into Word Document

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

    【讨论】:

      【解决方案3】:

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

      如果邮件合并是您要查找的内容,您可以将数据的多次迭代存储在不同的行中,并使用 Words 的邮件合并查询功能仅打印/准备您需要的内容。

      【讨论】:

        猜你喜欢
        • 2017-03-10
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多