|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 394167692 于 2019-6-23 22:05 编辑
大家好,现有一个问题请教大家
需要用vba把"成绩表.xls"里面的sheet(成绩导出)表里面的表格和柱状图同时复制到word的表(table1)里面的单元格cell(11,2)
要求图在下,表在上,都在同一个单元格里。
自己写的一段代码,虽然可以复制过去,但是后面复制的图会把前面复制的表格覆盖,如何做到表与图在同一个表里里面的单元格里?
自己写的代码如下:
Sub excel2word()
Dim wApp, currentpath, name, savepath, docRange
Dim i As Integer
'复制word模板新建一个文档,并且以特定单元格内容命名
name = Cells(1, "J").Text & ".docx" 'name sample report
currentpath = ThisWorkbook.Path & "\" 'define current path
savepath = ThisWorkbook.Path & "\sample\" 'save path
FileCopy currentpath & "template.docx", savepath & name 'copy file, save and rename
Set wApp = CreateObject("word.application")
With wApp
.Visible = False
.Documents.Open savepath & name 'open sample report
'导入excel表格到word且不改变样式
ThisWorkbook.Worksheets("数据导出").Range("A1:H2").Select
Selection.Copy
.ActiveDocument.Tables(1).cell(11, 2).Select
Set docRange = wApp.ActiveDocument.Tables(1).cell(11, 2).Range '指定复制位置
docRange.PasteExcelTable LinkedToExcel:=True, WordFormatting:=False, RTF:=True
'参考 https://docs.microsoft.com/zh-CN ... ion.PasteExcelTable
'以图片方式导入excel图表到word
ThisWorkbook.Worksheets("数据导出").ChartObjects(1).Activate
ThisWorkbook.Worksheets("数据导出").ChartObjects(1).CopyPicture
wApp.ActiveDocument.Tables(1).cell(11, 2).Select
.Selection.Paste
.Documents.Save
.Quit
End With
End Sub
理想状态如图:
更为理想的状态是能够在word里面创建一个表,并且根据表做好柱状图,把表和柱状图嵌入word的表格里面,然后从excel导入数据到这个嵌入的表格里面。
完善了下附件内容
附件如下:
demo.rar
(29.62 KB, 下载次数: 55)
|
|