VBA: 邮件合并 - 未找到字段对话框

VBA: Mail Merge - Field not found dialogue box

我一直在编写一个工具,通过 Excel VBA 中的一组 ODBC 表从 SQL 数据库中提取数据,并将信息插入到某些 pre-formatted 使用邮件合并和 Word 进行报告 Object。一些报告有一些可能并不总是包含数据的可选字段。在这些情况下,这些可选字段将完全不存在于数据库中。

我的代码被设计为动态的,并使用数据库中的问题详细信息作为字段 headers 生成合并信​​息(通过使用 VBA 合并的 CSV 文件)。我的问题源于输出合并文件中缺少选项问题并且 Word 提示用户 "Remove Field"。我一直在努力寻找一种编程方式来代表用户基本上回答这个对话框(这将始终是删除该字段),或者只知道该做什么而不需要问。

我没能找到一个模块、命令或函数来告诉单词 object 自动清理它,或者任何处理程序以编程方式回答问题。任何帮助将不胜感激。

以防其他人遇到类似问题,以下是我解决此问题的方法:

  1. 不打开数据源,而是打开标头源。在我的例子中,头源和数据源是同一个文件。
  2. 将合并字段 (.MailMerge.Fields) 与文件中的字段 (.MailMerge.DataSource.FieldNames) 进行比较。找不到时删除每个合并字段 (< MailMergeField >.delete)。
  3. 正常打开数据源,如果第一条记录与您的头文件相同,则将第一条记录设置为 2。