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

在excel里通过vba打开word文件并打印?,第1张

在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在保存文档时就不会d出是否保存的对话框了,达到悄无声息的效果

WordObject.ActiveDocument.SaveAs "D:\temp\导出数据.doc" '调用saveas命令保存文档,根据实际,指定文档的保存路径和名称

WordObject.Application.Quit '退出并关闭程序文档

Set WordObject = Nothing '释放对象

End Sub

把Set SourceBook = App.Workbooks.Open(ThisWorkbook.Path &"\123.xlsm", 0, True) 这句改成下面的试试:

Set SourceBook = App.Workbooks.Open(ThisWorkbook.Path &"\123.xlsm",0,false)

workbooks.open() 的第3个参数的意思是: 是否以只读模式打开,这样的话要保存肯定是另存了!

'要在VB中 *** 作Excel,需要引用Excel对象模型

'方法,在菜单里选择[工程] -- [引用],在窗口里勾选 Microsoft Excel XX.X Object Library

'其中,XX.X取决于你安装的Office的版本号

Private Sub Command6_Click()

Dim excel_App As Excel.Application

Dim excel_Book As Excel.Workbook

Dim excel_sheet As Excel.Worksheet

'启动Excel

Set excel_App = CreateObject("Excel.Application")'引用程序对象实例

excel_App.Visible = False'设置Excel为不可见

'打开文件

Set excel_Book = excel_App.Workbooks.Open("G:\1.XLS") '工作簿实例

Set excel_sheet = excel_Book.Worksheets("Sheet2") '数据表实例

excel_sheet.Range("C1").Value = "你好!"'设置单元格C1的值为"你好!"

excel_sheet.Range("A1").Value = 100'设置单元格A1的值为100

excel_sheet.Range("A2").Value = 9 '设置单元格A2的值为9

excel_sheet.Range("A3").Value = excel_sheet.Range("A1").Value + excel_sheet.Range("A2").Value'计算

'''''''''''''''''''''''''''''''''''

'读取数据到变量

x = excel_sheet.Range("A2").Value' 把单元格"A2"里的数据读取出来

'关闭Excel文件,注意下面步骤很重要,不能少!!!

Set excel_sheet = Nothing

excel_App.ActiveWorkbook.Close savechanges:=True'保存对EXCELL进行更改。

Set excel_Book = Nothing

excel_App.Quit

Set excel_App = Nothing


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11954513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存