在excel里通过vba打开word文件并打印?

比如在Excel工作表A列单元格中有1~10十个数值,B列有A1~A10 十个值与A列数值对应,怎么可以通过VBA实现:
一、首先弹出打印机选择,选择打印机后。
二、当excel的A列单元格包含1的时候,打开C:\test目录下1.docx,把B列对应的“A1”值填入到1.docx文本框中,并打印出来,当A列单元格包含2的时候,打开C:\test目录下2.docx,把B列对应的“A2”值填入到2.docx文本框中,并打印出来
三、以此类推,一共打印10分word文档

在EXcel的VB编辑器中插入一个模块,输入如下代码试试看。

Sub ExcelToWord()
Dim WordObject As Object '声明一个对象变量,这里即将声明为Word对象
On Error Resume Next
Set WordObject = CreateObject("Word.Application") '用set来创建Word对象,这里是运行Word程序,但未新建文档
WordObject.Visible = 0 '后台运行Word对象,只在任务管理器中存在WinWord.exe进程,但在任务栏上看不到word;如果为1或者True则可以看到word运行界面
WordObject.Documents.Add DocumentType:=wdNewBlankDocument '新建一word文档
'以下为获取Excel表格中的内容,准备把数据传送给Word,可以根据自己的实际需要定制代码,这里只是示例代码
Excel.Application.Sheets(1).Activate '切换当前电子表格的表1为当前激活表
Excel.Application.Sheets(1).UsedRange.Select '选中当前激活表的所有数据
Selection.Copy '将选中的区域进行复制
WordObject.Application.Activate '将后台运行的Word激活为当前窗口
WordObject.ActiveWindow.Selection.Paste '将刚才从Excel中复制进剪贴板中的内容粘贴进word中来
WordObject.Saved = True '将保存文档的Saved属性设置为True,这样后台运行的Word在保存文档时就不会弹出是否保存的对话框了,达到悄无声息的效果
WordObject.ActiveDocument.SaveAs "D:\temp\导出数据.doc" '调用saveas命令保存文档,根据实际,指定文档的保存路径和名称
WordObject.Application.Quit '退出并关闭程序文档
Set WordObject = Nothing '释放对象
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-16
打开一个新的Excel文档(不要求在要打印的Word文档所在的文件夹中),选开发工具一栏(没有的话在栏目一行任意一处单击右键,点 自定义功能区,在主选项卡 表中的选项中选上 开发工具,点击确定),点击Visual Basic,双击 Sheet1(Sheet1)表,在出现的代码框中粘贴
第2个回答  2021-11-16
在工作表中,点击菜单栏开发工具,在其工具栏内,点击visual basic会进入VBA编辑界面!点击菜单栏插入,在其下拉菜单中,选择模块】会弹出模块编辑窗口!在代码编辑窗口输入以下代码: Sub 打开word() Dim wdapp As Object, wdoc As Object
第3个回答  2021-11-15
How much,
哥可以搞定
第4个回答  2021-11-15
打印可以直接在EXCEL中打印出来即可。
相似回答