VB求教:想把excel里面的内容通过VB控件保存到word里面。请问如何写代码??
2个回答
展开全部
在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中固定单元格里面数据写入word中固定表格中?若能麻烦帮我写一个,我会继续加分。麻烦了
追答
Dim ex As Object
Set ex = CreateObject("Excel.Application")
ex.Range("A9:D9").Select 合并A9:D9 并设置
With ex.Selection
.Rows.VerticalAlignment = 1 居中
.WrapText = True 自动换行
'.Rows.AutoFit '适合行高
.Orientation = 0 '光标取向
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.MergeCells = True '合并单元格
.Borders.LineStyle = 1 加边框线
End With
ex.ActiveCell.FormulaR1C1 = text1.text 在合并后的A9:D9 并写入内容
ex.Range("D1").Value = "禁吃食物" 在D1中写入内容
ex.Range("A1").Borders.LineStyle = 1 A1加边框线
我想这么多你够用了
Dim Word
Dim WordApp
Set WordApp = CreateObject("Word.Application")
Set Word = WordApp.Documents.Open(fname)
For i = 0 To 6 在第一个表格中相应单元格填入内容
Word.Tables(1).cell(i + 2, 2) = shiwubiao.Text1(i).Text '填写食物宜忌表格
Next
For i = 0 To 6
Word.Tables(1).cell(i + 2, 3) = shiwubiao.Text1(i + 7).Text
Next
For i = 0 To 6
Word.Tables(1).cell(i + 2, 4) = shiwubiao.Text1(i + 14).Text
Next
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询