Pergunta

Eu tenho um documento do Word que é usado como o documento de origem para uma mala direta. Eu posso editar o documento, mas não os dados que estão sendo usados ??para a mesclagem. Eu preciso para transformar alguns dos dados na fonte de dados (especificamente, eu preciso tomar números (por exemplo, 342) e adicione seu valor em palavras (por exemplo, "342 (342)")). Eu posso escrever uma função VBA para fazer a transformação, mas eu não tenho certeza que a melhor forma de obter os dados para essa função.

Existe alguma maneira eu posso associar uma macro a pontos específicos no documento e deixe a fusão conduzir o processo de transformação? (Estou pensando em como você pode usar fórmulas em campos do Word, eu tenho algumas coisas da forma { IF { MERGEFIELD foo } > 75 { MERGEFIELD foo } { = { MERGEFIELD foo } * 20 } } no já o documento Se eu pudesse acrescentar algo para que eu pudesse ir { FUNCTION WordNum { MERGEFIELD number } } <. / strong>, que seria o ideal.)

Como alternativa, eu acho que eu posso usar o VBA para remexer em torno de fonte de dados da mala direta (especificamente document.MailMerge.DataSource) e campos de reescrita. Se eu seguir esse caminho, onde eu deveria executar a macro para que ele irá obter os dados depois de ter sido lido a partir da fonte de dados, mas antes tem sido mesclado com o documento?

Foi útil?

Solução 2

Não parece ser uma maneira de chamar funções arbitrárias de macros do Word incorporados, então eu fui a rota VBA.

Eu adicionei uma macro AutoOpen ao documento de origem que chamou MailMerge.EditDataSource e depois atravessou a mesa para fazer suas alterações.

Outras dicas

Você poderia fazer a transformação de dados em Microsoft Query? Isto é, onde você tem atualmente:

Data Source -> Mail Merge Template

criar um Microsoft Query que fica entre a sua fonte de dados e de palavra:

Data Source -> Microsoft Query -> Mail Merge Template

Tem sido um tempo desde que eu usei mala direta no Word, mas eu não me lembro de ser capaz de exercer muito controle sobre ele ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top