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

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

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

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

1 ответ1

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .