Filtrar dados de mala direta do Word usando a data atual

1

Eu estou tentando semi-automatizar uma mesclagem de email no Word. Excel é a fonte. Em filtragem, quero que a coluna "Data de aviso" na planilha seja igual à data atual. Posso fazer isso para que não tenhamos que digitar manualmente a data atual no campo "comparar para" todos os dias na caixa de diálogo Filtrar e classificar.

    
por user1921849 18.06.2013 / 23:32

2 respostas

0

Você não pode fazer isso na caixa de diálogo de filtragem, mas há duas opções:  uma. Use um campo aninhado como este no início de seu documento principal de mala direta: [[editado para mostrar < > em vez de =]] {SKIPIF {MERGEFIELD thedatefieldname \ @YYYYMMDD} < > {DATA \ @ AAAAMMDD}}  b. Use o VBA para fazer a conexão e fornecer um pouco de SQL que faça a comparação,

Duas notas em (a) - não estou certo de que funcionará com uma mesclagem emial, pois o Word pode gerar e-mails em branco. A Microsoft tem dito há anos que a filtragem deve ser usada em vez do SKIPIF, mas sempre me parece que as pessoas que dizem não percebem que os dois métodos fazem coisas significativamente diferentes.

Para (b), você precisa de algo como o seguinte para uma conexão de tipo padrão (OLE DB):

Sub connectToMMDS() 
ActiveDocument.MailMerge.OpenDataSource Name:="the full path name of your Excel workbook", _ SQLStatement:="SELECT * FROM [Sheetname$] WHERE [datecolumn] = date()" 
End Sub

Sheetname é o nome da planilha (ou seja, se for Sheet1, use [Sheet1 $]). Se for um intervalo nomeado como myrange, use [myrange] e não adicione o $.

    
por 19.06.2013 / 17:48
1

Se você puder alterar a planilha do Excel, coloque-a em uma das colunas.

=IF(Y2=TODAY(),1,0)
    
por 07.12.2015 / 18:48