使用合并域从文本文件导入数据(MS Word 2010)

时间:2015-02-23 10:39:43

标签: ms-word mailmerge mergefield

我在MS Word 2010中使用邮件合并。数据来自Excel电子表格:

Last Name           First Name          Group
Smith               Oliver              F1
Jones               Amelia              B2
Taylor              Emma                B2
Williams            Jack                C1

我们假设我们有以下合并字段:" LASTNAME" " FIRSTNAME" &# 34; GROUP"

在我的文档中,我想添加一个特定于该组的段落。 Word会在名为" GROUP" .txt:

的文件中查找此段落
B1.txt:
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

B2.txt:
Sed auctor turpis sed nisl ultricies volutpat.

C1.txt:
Vestibulum vel interdum metus, quis accumsan tortor.

这是其中一个想法。这些段落也可以是另一个来源,例如Excel工作表或CSV文件。

你知道我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

我很高兴地告诉您,通过编写一个小型VBA脚本,我找到了一个令人满意的解决方案。它分三步进行:

  1. 获取所需合并域的值(例如“B2”)

    ' source: 4th post, from dmaruca, on VBForum thread Nr 549587
    GroupVal = ActiveDocument.MailMerge.DataSource.DataFields("Group").Value
    
  2. 导入相关文本文件的内容(例如“C:\ B2.TXT”)

    GroupText = ImportTextFile("C:\" & GroupVal & ".Txt")
    
    ' VBA Code Snippet #22 from Allan Chara (Excel MVP)
    Function ImportTextFile(strFile As String) As String
      Open strFile For Input As #1
      ImportTextFile = Input$(LOF(1), 1)
      Close #1
    End Function
    
  3. 插入文字

    ' see Microsoft KB #212682
    Selection.TypeText (GroupText)