ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3127|回复: 28

[求助] 多簿多表里面多个图表,怎么批量导出每个工作表的指定图表到word?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-26 14:50 | 显示全部楼层 |阅读模式
如附件一样,每个Excel有七个工作表,每个工作表有两个图表,其中一个是有红线的,我想把所有工作簿里面所有工作表里的带红线那个图表批量导出到word,然后再在每个工作簿导出的图表后添加文字说明(即每7个图表后添加文字说明),依次排序下去。请问该怎么弄?

导出模版及原始数据.zip

1.03 MB, 下载次数: 10

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-27 15:01 | 显示全部楼层
有没有大佬帮帮忙啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-28 11:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-2-28 14:00 | 显示全部楼层
  1. Sub ExportChart()
  2.     Dim objWord As Object
  3.     Dim objDoc As Object
  4.     Dim objSelection As Object
  5.    
  6.     Dim MyFile As String
  7.     Dim s As String
  8.     Dim count As Integer
  9.    
  10.     Set objWord = CreateObject("Word.Application")
  11.     Set objDoc = objWord.Documents.Add
  12.     objWord.Visible = True
  13.     Set objSelection = objWord.Selection
  14.    
  15.     MP = "C:\导出模版及原始数据"
  16.    
  17. '    MP = ActiveWorkbook.Path
  18.     MN = Dir(MP & "" & "*.xlsx")
  19.     AW = ActiveWorkbook.Name

  20.     Do While MN <> ""
  21.         If MN <> AW Then
  22.             Set wb = Workbooks.Open(MP & "" & MN)
  23.                 For Each sht In Sheets
  24.                     For Each ocharts In sht.ChartObjects
  25.                         With ocharts.Chart
  26.                             For Each serie In .SeriesCollection
  27.                                 If serie.Border.Color = RGB(255, 0, 0) Then
  28.                                     .CopyPicture
  29.                                     objSelection.Paste
  30.                                 End If
  31.                             Next
  32.                         End With
  33.                     Next
  34.                 Next
  35.         End If
  36.         wb.Close False
  37.         MN = Dir
  38.     Loop
  39.     objDoc.SaveAs ("D:\MyFirstSave")
  40. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-2 10:50 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-3-2 11:18 | 显示全部楼层
注意修改这句MP = "C:\导出模版及原始数据",放上你的文件夹的位置

TA的精华主题

TA的得分主题

发表于 2020-3-2 14:30 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-3 09:25 | 显示全部楼层
dyp1610 发表于 2020-3-2 11:18
注意修改这句MP = "C:\导出模版及原始数据",放上你的文件夹的位置

修改了路径,出来还是空白文档,不知道咋回事

TA的精华主题

TA的得分主题

发表于 2020-3-3 12:42 | 显示全部楼层
疯泠风 发表于 2020-3-3 09:25
修改了路径,出来还是空白文档,不知道咋回事

仔细看了一下,代码上传时斜杠丢失了。
    Dim objDoc As Object
    Dim objSelection As Object
   
    Dim MyFile As String
    Dim s As String
    Dim count As Integer
   
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Add
    objWord.Visible = True
    Set objSelection = objWord.Selection
   
    MP = "C:\导出模版及原始数据"
   
'    MP = ActiveWorkbook.Path
    MN = Dir(MP & "\" & "*.xlsx")
    AW = ActiveWorkbook.Name

    Do While MN <> ""
        If MN <> AW Then
            Set wb = Workbooks.Open(MP & "\" & MN)
                For Each sht In wb.Sheets
                    For Each ocharts In sht.ChartObjects
                        With ocharts.Chart
                            For Each serie In .SeriesCollection
                                If serie.Border.Color = RGB(255, 0, 0) Then
                                    .CopyPicture
                                    objSelection.Paste
                                End If
                            Next
                        End With
                    Next
                Next
        End If
        wb.Close False
        MN = Dir
    Loop
    objDoc.SaveAs ("E:\myfirst.doc")
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-3 15:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dyp1610 发表于 2020-3-3 12:42
仔细看了一下,代码上传时斜杠丢失了。
    Dim objDoc As Object
    Dim objSelection As Object

非常感谢大神,导出来了,不过在运行的时候,需要一个个打开Excel,而且因为Excel里面有外部链接,每次打开都要选择更新或者不更新,能否不打开Excel,也不弹出更新提示,直接出结果呢?另外导出的word没有文字说明,我一个Excel里面有七个工作表,我想每七个图(也就是一个Excel的图)做个文字说明,就像(图一、图二这样),大神能否改改代码?感激不尽
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 07:30 , Processed in 0.045235 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表