Função de mala direta no Word 2010

3

Eu tenho este arquivo do Excel que tem várias planilhas que desejo importar para o formato de carta do Microsoft Word.

Em primeiro lugar eu comecei a mala direta para este arquivo excel e selecionei esta folha / tabela específica, então eu preenchi a carta com os campos necessários e pronto.

Depois disso, eu queria fazer a mala direta para o mesmo arquivo novamente, mas desta vez selecionei outra tabela com as diferentes colunas que desejo preencher a carta com esses dados. Quando tentei fazer isso, recebi um erro dizendo que eu tinha que remover o campo preenchido anteriormente e substituí-lo por esse recém-selecionado.

A mensagem de erro:

This merge field is used in the main document, but it does not exist in the data source. You can remove the invalid merge field from the main document. Or, you can replace it with a valid merge field from the data source.

As colunas de que eu precisava são de tabelas diferentes no arquivo do Excel, por isso recuperei os dados separadamente.

Como eu corrijo o erro?

    
por Cheryl 28.08.2013 / 04:26

3 respostas

0

O MailMerge para vários documentos deve ter uma única tabela com uma linha para cada entrada. A maneira mais fácil de fazer isso seria combinar suas planilhas para que você tenha uma única tabela. Preencher usando essa tabela criará x documents, em que x é o número de linhas que não são de cabeçalho na tabela.

    
por 28.08.2013 / 09:42
0

O IMO sugerido pela jmac é provavelmente o mais simples e confiável, a menos que você tenha acesso a bons recursos de codificação. Ou aceite que você tenha que copiar e modificar seu documento principal de mala direta para mesclar dados de cada folha.

Existem outras maneiras, mas a maioria envolve programação ou métodos que eu diria que não são confiáveis o suficiente para cenários típicos, e a outra só funcionará em algumas circunstâncias.

O que pode ser usado também depende se você deseja combinar todos os dados de várias planilhas em uma única saída ou se deseja saídas separadas por planilha.

Se você estiver usando os campos ADDRESSBLOCK ou GREETINGLINE, que dependem do mapeamento de campo, as coisas são ainda mais complicadas.

Para "saídas separadas por folha",

a. se cada folha usar as mesmas colunas, mas com nomes diferentes, você poderá usar o número da coluna em vez do nome. Por exemplo, suponha que sua pasta de trabalho contenha 2 folhas, Folha1 e Folha2, e na Folha1 a coluna 1 seja chamada de namea e na Folha2 a coluna 1 seja chamada de nameb. Em seguida (usando Alt-F9 para examinar os nomes de campo) você precisaria o seguinte no documento principal de mala direta para a Folha1:

{MERGEFIELD namea}

para a Folha2

{MERGEFIELD nameb}

Mas

{MERGEFIELD 1}

deve funcionar nos dois casos. (Isso não está documentado em nenhum lugar que eu saiba).

b. você poderia usar "campos de endereço" em vez de "campos de banco de dados". Isso sofre de uma limitação que eu normalmente consideraria como um stopstopper (vou descrevê-lo mais tarde), mas funciona assim:

Em vez de usar o nome da coluna ("namea") via {MERGEFIELD namea}, você usa um campo de endereço como este

{MERGEFIELD "Primeiro nome" \ m}

Isso usa um conjunto padrão de nomes de campo que você "corresponde" (ou "mapa") aos nomes das colunas na planilha do Excel. Você pode selecionar esses campos na caixa de diálogo Inserir campo inteira selecionando a opção "Endereço" em vez da opção padrão "Banco de dados", e você pode remapear os campos usando o botão Corresponder campos ... nessa caixa de diálogo. Você precisa marcar a caixa Lembrar esta correspondência para este conjunto de fontes de dados neste computador na parte inferior. Em seguida, quando você alternar de uma fonte de dados para outra, o Word deve lembrar os mapeamentos corretos.

Essa é a teoria, mas na prática eu acho que é uma abordagem impraticável na maioria dos cenários. Isso é porque o Word só lembra (no Registro do Windows) um mapeamento para cada nome de banco de dados. Portanto, se você tiver um campo chamado namea em uma planilha e precisar mapear isso para First Name, mas em outra planilha você precisar mapear namea para Last Name, não será possível fazer isso (AFAICS). Pior, se alguém alterar os mapeamentos, os documentos de mesclagem existentes poderão acabar obtendo os dados errados e o usuário não terá nenhum aviso.

Abordagens que envolvem programação incluem o seguinte:

c. você tem código (por exemplo, código VBA) que coleta e salva os nomes necessários em cada planilha e insere os nomes corretos para cada campo MERGEFIELD. Você poderia usar campos aninhados para isso, com efeito, fazendo seu próprio mapeamento. Usando o exemplo em (a) novamente, você poderia, por exemplo, ter uma variável de documento chamada "thename", usar o VBA para preenchê-la com namea ou nameb e usar o seguinte campo aninhado:

{MERGEFIELD {DOCVARIABLE thename}}

(e isso só funciona se você puder fazer com que o seu VBA faça as substituições antes que o Word tente verificar os nomes dos campos)

d. (se você precisar que as planilhas escolhidas sejam mescladas em uma única mesclagem, não uma mescla por folha), você escreve código para automatizar o Excel para combinar as planilhas usando o modelo de objeto do Excel ou obtém o Excel (ou Access) para fazê-lo configurando uma consulta UNION para combinar as planilhas. Usando nosso exemplo novamente, a UNION pode ser assim:

SELECIONE 1 AS [thesheet], namea AS [nome] FROM [Sheet1 $]

UNIÃO

SELECIONE 2, nameb FROM [Sheet2 $]

Embora você possa configurar uma consulta ao longo dessas linhas no Word VBA, o Word possui uma limitação de 511 caracteres em suas consultas MailMerge que é altamente provável que você exceda. Você pode configurar uma consulta em uma nova pasta de trabalho do Excel para fazer algo semelhante, mas não sei se há tamanho de consulta ou outras limitações nesse produto. Além disso, você provavelmente perderá dados de "memorando" (com mais de 255 caracteres), portanto, novamente, essa é apenas uma opção para alguns tipos de fonte de dados.

    
por 28.08.2013 / 15:02
0

Já tentou acessar "Selecionar Destinatários" e selecionar a folha de origem novamente? Se não, faça isso e selecione a planilha correta.

    
por 27.11.2013 / 20:40