Пакетная вставка нескольких полей слияния

749
Dekks

У меня есть документ слияния, связанный с файлом Excel, содержащий около 200 столбцов и несколько сотен строк. Мне нужно настроить мой документ слияния, чтобы он выглядел следующим образом:

[code] [type] [amount] [code1] [type1] [amount1] [code2] [type2] [amount2] 

и так далее, вплоть до 200-го повторения поля. Не вдаваясь во все детали, почему я нуждаюсь в этом, это очень грязный и быстрый способ получения данных, которые мы хотим объединить, и в конечном итоге будет найден более элегантный способ.

У меня вопрос, как я могу быстро вставить поля без буквального выбора поля вставки несколько сотен раз? В идеале я бы просто дал ему список полей и вставил бы их все, т. Е. Настроил три столбца в Excel с именами полей, а затем скопировал и вставил их в слово, за исключением того, что слово не распознает их как фактические поля, и увидим << текст >> как чистый текст, а не фактическое поле.

0
Итак, вы буквально открываете пустой документ, затем вставляете эти три кода в три столбца и повторяете эту ссылку 200 раз? BruceWayne 6 лет назад 0

1 ответ на вопрос

0
BruceWayne

Как это работает? Это макрос, поэтому добавьте это в модуль в вашем документе.

Sub add_hundreds_of_refs() Dim myDoc As Document Set myDoc = ActiveDocument Dim i As Long  With myDoc .MailMerge.Fields.Add Range:=Selection.Range, Name:="Code" .MailMerge.Fields.Add Range:=Selection.Range, Name:="Type" .MailMerge.Fields.Add Range:=Selection.Range, Name:="Amount" Selection.TypeParagraph For i = 1 To 200 .MailMerge.Fields.Add Range:=Selection.Range, Name:="Code" & i .MailMerge.Fields.Add Range:=Selection.Range, Name:="Type" & i .MailMerge.Fields.Add Range:=Selection.Range, Name:="Amount" & i Selection.TypeParagraph Next i End With End Sub 

enter image description here

Именно то, что я искал, спасибо! Я знаком с VBA в Excel, но мне было трудно найти много документации о том, какие команды Word были в VBA для этого. Dekks 6 лет назад 0