如何在EXECL中用VBa打开Word,并输出数据到WORD中,保存,关闭
3个回答
展开全部
在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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在EXcel的VB编辑器中插入一个模块,输入如下代码试试看。
Sub Mysub()
Dim WordObject As Object '声明一个对象变量
Set WordObject = CreateObject("Word.Application") '创建Word程序对象
WordObject.Visible = False '后台运行Word对象,任务栏上看不到,但任务管理器上可看到该WinWord.exe进程;如果为true则可以在任务栏上看到word运行界面
WordObject.Documents.Add DocumentType:=wdNewBlankDocument '后台运行的word程序要新建一个word文档
'以下为获取电子表格中要发送给Word的数据而编制的代码,根据实际需要进行编制,这里只是举例
Application.Sheets(1).UsedRange.Select '选择整张表
Selection.Copy '复制整张表
WordObject.Application.Activate '激活后台运行的word文档
'这里需要编制代码将刚才复制进剪贴板的内容粘贴到后台运行的该word文档中来
WordObject.ActiveDocument.SaveAs "D:\temp\导出数据.doc" '保存文档
WordObject.Application.Quit '关闭该word文档,或许一同关闭word程序
end sub
Sub Mysub()
Dim WordObject As Object '声明一个对象变量
Set WordObject = CreateObject("Word.Application") '创建Word程序对象
WordObject.Visible = False '后台运行Word对象,任务栏上看不到,但任务管理器上可看到该WinWord.exe进程;如果为true则可以在任务栏上看到word运行界面
WordObject.Documents.Add DocumentType:=wdNewBlankDocument '后台运行的word程序要新建一个word文档
'以下为获取电子表格中要发送给Word的数据而编制的代码,根据实际需要进行编制,这里只是举例
Application.Sheets(1).UsedRange.Select '选择整张表
Selection.Copy '复制整张表
WordObject.Application.Activate '激活后台运行的word文档
'这里需要编制代码将刚才复制进剪贴板的内容粘贴到后台运行的该word文档中来
WordObject.ActiveDocument.SaveAs "D:\temp\导出数据.doc" '保存文档
WordObject.Application.Quit '关闭该word文档,或许一同关闭word程序
end sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询