使用当前日期过滤 Word 邮件合并数据

使用当前日期过滤 Word 邮件合并数据

我正在尝试在 Word 中半自动化电子邮件合并。Excel 是源。在过滤下,我希望电子表格中的“通知日期”列等于当前日期。我可以这样做吗,这样我们就不必每天在“过滤和排序”对话框中的“比较”字段中手动输入当前日期。

答案1

您无法在筛选对话框中执行此操作,但有两个选项:a. 在邮件合并主文档的开头使用这样的嵌套字段:[[edited to show <> Rather than =]] { SKIPIF { MERGEFIELD thedatefieldname \@YYYYMMDD } <> { DATE \@YYYYMMDD } } b. 使用 VBA 建立连接并提供一些进行比较的 SQL,

关于 (a) 的两点说明 - 我不确定它是否适用于电子邮件合并,因为 Word 可能会生成空白电子邮件。微软多年来一直在说应该使用过滤而不是 SKIPIF,但在我看来,说这话的人似乎没有意识到这两种方法的作用截然不同。

对于 (b),您需要类似以下内容的默认类型 (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 是工作表的名称(例如,如果是 Sheet1,则使用 [Sheet1$])。如果是命名范围(如 myrange),则使用 [myrange],并且不要添加 $。

答案2

如果您可以更改 Excel 电子表格,请将其放在其中一列上。

=IF(Y2=TODAY(),1,0)

相关内容