A impressão em série do Word 2010 suprime os campos de mesclagem condicionais em branco

0

Não consigo obter uma Mala Direta condicional para suprimir linhas em branco de maneira relativamente limpa e eficiente. A única solução que encontrei é uma que não estou disposta a usar, já que sinto que pode haver uma maneira melhor.

Agora, minha mesclagem condicional é assim:

Noentanto,issonãoestásuprimindoosvaloresqueestãoembrancoeummontedelinhasembrancoestãoaparecendonaletra.

Eutenteiforçarumapalavra<line_break>ou<paragraph_break>ausarasupressãoembrancopadrão.Eutambémtenteiremovero<paragraphbreak>apóscadalinhacompletamente.

Euentendode este site útil que posso fazer um tipo de declaração de condição múltipla, mas também saibam que essa afirmação parecerá muito feia, muito rapidamente com a quantidade de condições que eu tenho.

Alguém tem alguma idéia de como eu posso suprimir a linha branca de tal forma a ser limpa e limpa (relativamente) e que outras pessoas possam entender facilmente daqui para frente?

    
por Scott Holtzman 13.11.2015 / 17:42

2 respostas

1

Para suprimir linhas em branco quando os campos de mala direta em um documento principal de mala direta estão vazios, crie o seguinte código em um Módulo VBA .

Sub SuppressBlankLines() 
 ActiveDocument.MailMerge.SuppressBlankLines = True 
End Sub

Se o "Desenvolvedor" não estiver ativo / visível em seu documento do Word, será necessário ativá-lo em Arquivo - > Opções - > Personalizar Faixa de Opções (caixa 'Desenvolvedor'). Isso permitirá que você selecione o sistema de desenvolvimento Visual Basic e adicione um módulo.

    
por 04.12.2015 / 18:54
0

Corrigir esse tipo de problema manipulando a fonte de dados (por exemplo, usando uma consulta) é geralmente o melhor caminho a seguir. AFAICS é o que você fez agora.

Como plano de fundo, nem todos os espaços em branco no MailMerge são tratados como em branco para fins de supressão de linha em branco. O espaço em branco digitado comum, como espaços e guias, é tratado como em branco. Campos MERGEFIELD que possuem um resultado em branco são tratados como em branco. Mas o resultado de um campo IF nunca é tratado como em branco.

Estou assumindo que a lógica que você precisa está nas seguintes linhas

If ( ext_b1 is False or borrower_1 is blank )
  don't insert anything, not even a blank line
Else (i.e. ext_b1 is True and borrower_1 is not blank )
  insert borrower_1 followed by a paragraph mark
End If

Se sim, e ext_b1 é sempre o mesmo valor não em branco quando é "não False" e borrower_1 nunca tem mais que 120 caracteres (isso é OTTOMH, você deve verificar), você pode usar um truque de curingas para simplificar o teste IF e tornar a codificação de campo um pouco mais simples:

{ IF "{ MERGEFIELD ext_b1 }{ MERGEFIELD borrower_1 }" = "True?*" "{ MERGEFIELD borrower_1 }" "" }
{ IF "{ MERGEFIELD ext_b2 }{ MERGEFIELD borrower_2 }" = "True?*" "{ MERGEFIELD borrower_2 }" "" }

Exceto que, na verdade, não elimina a marca de parágrafo quando ext_b1 é False ou borrower_1 está em branco. Para lidar com isso, o que você pode fazer é inserir a marca de parágrafo dentro de If "é verdadeiro resultado" e colocar todos os {} campos IF em uma linha, assim:

{ IF "{ MERGEFIELD ext_b1 }{ MERGEFIELD borrower_1 }" = "True?*" "{ MERGEFIELD borrower_1 }
" "" }{ IF "{ MERGEFIELD ext_b2 }{ MERGEFIELD borrower_2 }" = "True?*" "{ MERGEFIELD borrower_2 }
" "" }

Para tornar isso um pouco mais claro (espero), você também pode modificar o layout do código de campo colocando marcas de parágrafo dentro do IF, mas fora dos textos de resultado do IF. Essas marcas não farão parte do resultado. Você também não precisa do resultado "falso". então, por exemplo,

{ IF "{ MERGEFIELD ext_b1 }{ MERGEFIELD borrower_1 }" = "True?*" 
"{ MERGEFIELD borrower_1 }
" }{ IF "{ MERGEFIELD ext_b2 }{ MERGEFIELD borrower_2 }" = "True?*" 
"{ MERGEFIELD borrower_2 }
" }

Um problema com a modificação do layout é que a quantidade de espaço vertical ocupado pela expressão de campo muda dependendo se o usuário tem códigos de campo ou resultados de campo exibidos, então a mudança de uma vista para outra pode ser desconcertante ( especialmente em um documento grande, onde o Word também pode gastar tempo repaginando quando você ativa e desativa a exibição de código de campo.)

    
por 15.11.2015 / 16:31