Batch inserindo vários campos de mala direta

0

Eu tenho um documento de mala direta conectado a um arquivo excel com cerca de 200 colunas e algumas centenas de linhas. Eu preciso configurar o meu documento de mala direta para olhar da seguinte forma:

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

etc, até a 200ª reiteração do campo. Sem entrar em todos os detalhes de por que eu preciso disso, é uma maneira super-suja e rápida de obter os dados que queremos mesclados e, eventualmente, um modo mais elegante.

A minha pergunta é como posso inserir rapidamente os campos sem literalmente selecionar o campo de inserção várias centenas de vezes? Idealmente, eu apenas daria uma lista dos campos e teria que inserir todos eles, ou seja, configure as três colunas no excel com os nomes de campos, e copie e cole em palavra, exceto que a palavra não os reconhece como campos reais, e verá < < texto > > como texto puro em vez de um campo real.

    
por Dekks 13.09.2017 / 16:47

1 resposta

0

Como isso funciona? É uma macro, então adicione isso a um módulo no seu documento.

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

    
por 13.09.2017 / 21:25