Использование поля слияния для импорта данных из текстового файла (MS Word 2010)

Я использую слияние почты в MS Word 2010. Данные поступают из электронной таблицы Excel:

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

Допустим, у нас есть следующие поля слияния: «LASTNAME», «FIRSTNAME» и «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.

У тебя есть идеи, как я мог это сделать?


person patpdm    schedule 23.02.2015    source источник


Ответы (1)


Рад сообщить вам, что я нашел удовлетворительное решение своей проблемы, написав небольшой сценарий 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)
    
person patpdm    schedule 23.02.2015