使用vba通过从Excel工作表导入的数据自动化Microsoft Word文档,使用variables过滤实际插入的数据

我正在尝试用Excel中的信息填充Word文档。 Excel上的表看起来非常简单。

QUESTION |YES| DATA Prewritten question 1 | X | Prewritten data 1 Prewritten question 2 | X | Prewritten data 2 Prewritten question 3 | X | Prewritten data 3 

那么我怎样才能在YES下自动填充带有variablesX的数据的新单词文档,只粘贴保存在数据列中的预写数据?

我几乎在Word上使用这个步骤的邮件合并function,但是当我能够填充Word文档时,预写入的数据将被粘贴,但是每个从数据列粘贴的select将在Word上占据自己的页面,即使是短短的3个字的短语。

最简单的方法是使用Word字段,无需代码。

  1. 在Excel中,select数据范围并为其分配名称(范围名称)
  2. 在Word插入/文本/快速部分/字段
  3. 从列表中select数据库。 插入数据库button将出现,单击它。
  4. 在对话框的第1步中,导航到工作簿的位置并将其选中。 你会被提示input连接协议(OLEDB是好的)。 从列表中select范围名称。
  5. 在步骤2中select“查询选项”。select“select字段”:在右侧的列表中,select不需要的字段,然后单击“删除”。 标签“筛选logging”:select“是”列,并设置比较“等于”,并在第三个框中键入X.
  6. 在第三步点击“插入数据”; 请务必激活“插入数据作为字段”checkbox以获取活动链接回到工作簿。

这将在Word文档中插入数据库字段,其语法如下所示。 按下Alt + F9在字段结果和字段显示视图之间切换。 如果您已经完成了数据连接的任何工作,其中一些将看起来很熟悉。 在任何情况下,您都应该认识到开头附近的文件path以及最后的SQL select语句。

 { DATABASE \d "C:\\Test\\ExcelDataRange.xlsx" \c "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin; Data Source=C:\\Test\\ExcelDataRange.xlsx;Mode=Read; Extended Properties=\"HDR=YES;IMEX=1;\"; Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\"; Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0; Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1; Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False; Jet OLEDB:Encrypt Database=False; Jet OLEDB:Don't Copy Locale on Compact=False; Jet OLEDB:Compact Without Replica Repair=False; Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False; Jet OLEDB:Bypass UserInfo Validation=False" \s "SELECT `Data` FROM `Test` WHERE ((`Yes` = 'X'))" } 

如果工作簿中的数据发生更改,请在表中单击并按F9更新该字段。 (如果您将行添加到范围内,请务必调整“范围名称”以将它们全部包括在内!)