【问题标题】:Populating a Word Template with Excel Data使用 Excel 数据填充 Word 模板
【发布时间】:2019-07-22 12:18:50
【问题描述】:

所以我一直在互联网上四处寻找解决方案。

我有一个 Word 文档,我想将其用作欢迎新员工加入公司的模板。

我还有一个 Excel 文件,其中包含所有新员工的姓名、职务、团队名称等(目前每个人都有自己的文件,但可以更改)。

文档中的信息如下所示:

欢迎您,[NAME]!你今天以 [JOBTITLE] 的身份加入我们,与 [TEAMNAME] 团队合作。您将与 [TEAMMEMBERS] 密切合作。

我想让它在 Word 文件中显示 [NAME] 的任何地方都会显示此人的姓名,[JOBTITLE] 成为他们的头衔,等等。

所有标签在整个文档的不同上下文中重复出现。我想用 VBA 来做这个,但我不知道怎么做,虽然感觉应该很简单。我在任何与代码相关的方面都不是很有经验,但我过去成功地拼凑了一些 VBA,所以我觉得我有最好的机会来管理它。

我使用的是 Mac,并且很难理解 MailMerge 功能,因为它似乎是 Windows 上更直观的系统。也许这就是答案,但说实话我说不出来。

我已经查看了数千个类似的帖子,但似乎找不到我的答案,有人可以帮忙吗?

【问题讨论】:

  • 我建议您在最终用户场所(例如超级用户)询问如何在 Mac 上使用 Mail Merge。就 VBA 解决方案而言,尝试在 Mac 上从另一个 Office 应用程序运行一个 Office 应用程序也存在大量问题。即使不是这样,Stack Overflow 也不是免费的代码编写服务或教程网站。这个问题“太宽泛了”——你是专业人士——他们通过编码获得报酬——无法为你编写整个代码。请查看help center 中的网站使用指南,以更好地了解 Stack Overflow 的用途以及如何在此处提问。
  • 或者,使用 Word 中的记录宏功能记录自己用特定名称替换单词 [NAME},然后使用该代码作为基础为每个选项生成一系列替换语句 (姓名、职位名称等)。然后你只需要找到代码来从word中读取excel中的一个单元格,这就是google的用途......:-)

标签: excel vba excel-formula ms-word mailmerge


【解决方案1】:

我会这样做。

在“工具”>“参考”下为 Word 设置“参考”,然后运行以下代码(从 Excel 运行)。

Sub PushToWord()

Dim objWord As New Word.Application
Dim doc As Word.Document
Dim bkmk As Word.Bookmark
sWdFileName = Application.GetOpenFilename(, , , , False)
Set doc = objWord.Documents.Open(sWdFileName)
'On Error Resume Next

objWord.ActiveDocument.variables("BrokerFirstName").Value = Range("BrokerFirstName").Value
objWord.ActiveDocument.variables("BrokerLastName").Value = Range("BrokerLastName").Value
objWord.ActiveDocument.variables("Ryan").Value = Range("Ryan").Value


objWord.ActiveDocument.Fields.Update

'On Error Resume Next
objWord.Visible = True

End Sub

记得将DocVariables 添加到您的 Word 文件中。您可以对书签执行相同的操作。

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多