将N个数据条目从Excel导出到Word

时间:2018-06-25 01:48:59

标签: excel vba ms-word word-field

我想知道是否可以从Microsoft Excel创建数据条目集并将其直接导出到Microsoft Word?

例如,如果我正在制作一个电话簿,该电话簿在Excel中列出了该人的名字,姓氏,地址和电话号码,则这将自动将数据导出到Word。

我不希望在Word中具有固定数量的条目并进行复制和粘贴,但是当我在Excel中添加更多条目时,数据从Excel推送到Word中。我自己不是专家编码人员,但是我已经在YouTube上观看了多个视频,并且正在寻找指导。

2 个答案:

答案 0 :(得分:1)

这是一个旧命令,默认情况下不再在Word UI中公开: InsertDatabase。您可以在“文件/选项/自定义功能区”或“快速访问”工具栏中的“所有命令”下找到它。

这会通过一组对话框插入名称为Database的字段。

  1. Get Data与选择数据源时在邮件合并中看到的相同。这将使用任何有效的连接方法(目前是ODBC或OLE DB-后者是默认设置)绑定到数据源。您的情况是一个Excel工作表。如果您已为数据分配了范围名称,则也可以选择该名称。

  2. Data options您可以设置查询选项(过滤/排序进来的内容)。您还可以设置“表格自动格式”以选择预定义(或用户定义)的表格样式。

  3. Insert Data,可以在其中选择记录。这很重要:激活复选框Insert Data as field。这就是使数据动态化的原因。

  4. OK插入数据/字段。结果将类似于以下内容,您可以通过按Alt + F9在字段结果和字段代码之间切换来查看(和编辑)。这是连接信息。

  

{数据库\ d“ C:\ Users \ [用户名] \ Documents \ SampleChart.xlsx”   \ c“ Provider = Microsoft.ACE.OLEDB.12.0; User ID = Admin; Data   来源= C:\ Users \ Cindy   Meister \ Documents \ SampleChart.xlsx; Mode = Read; Extended   属性= \“ HDR = YES; IMEX = 1; \”; Jet OLEDB:系统数据库= \“ \”; Jet   OLEDB:注册表路径= \“ \”; Jet OLEDB:引擎类型= 37; Jet OLEDB:数据库   锁定模式= 0; Jet OLEDB:全局部分批量操作= 2; Jet OLEDB:全局   批量交易= 1; Jet OLEDB:新数据库密码= \“ \”; Jet   OLEDB:创建系统数据库= False; Jet OLEDB:加密   数据库= False; Jet OLEDB:在Compact上不复制语言环境= False; Jet   OLEDB:紧凑,无需副本修复= False; Jet OLEDB:SFP = False; Jet   OLEDB:支持复杂数据= False; Jet OLEDB:绕过UserInfo   Validation = False“ \ s” SELECT * FROM ChartInfo“ \ h

每当Excel中的任何内容发生更改时,此字段都不会自动更新,您必须通过单击并按F9来强制更新。或者,您可以使用宏来执行此操作。最简单的是,如果您不想简单地更新文档正文中的所有字段,则可以在表格中加上书签,并在两端分别添加一个段落并使用

ActiveDocument.Bookmarks("Database").Range.Fields.Update 

答案 1 :(得分:1)

在我看来,您可以使用与Word中的LINK字段一样简单的方法来完成此操作,您可以通过复制(在Excel中)然后选择性粘贴>粘贴链接(在Word中),并使用适当的格式来创建该字段粘贴格式。如果在复制和粘贴之前命名Excel范围,Word中的范围将自动扩展/收缩以匹配Excel范围的变化。不需要代码。