分享

EXCEL批量导出图片

 EXCEL分享 2021-05-09

EXCEL的优势在于数据处理和分析,对于图形的处理往往不如PPT和WORD这两个兄弟。前面也讲过例如图形的布尔运算,EXCEL就没有这个功能,反而PPT和WORD 这两个软件都做的很好。今天就讲一下EXCEL的另一个不足:工作表中插入的图片无法另存为单独的文件。

也许你不信,试试就知道了。

先打开一个EXCEL,如下表所示:

点击任意图片,右键,如下:我们找不到另存功能

看看人家Word

看看人家PPT

那么怎么将EXCEL中的图片另存为图片文件呢?

第一种方法:上面其实已经给出了答案:你品,你细品,EXCEL说:这个我不擅长,你去找WORD或PPT吧,你跟谁熟,就找谁帮忙。

第二种方法:也比较简单,将EXCEL另存为网页版文件

找到.files文件夹,发现所有的图片都在这里

第三种方法:VBA

Alt+F11打开VBA编辑器,新建模块,输入下列代码:

Sub 批量导出图片()

    Dim shp As Shape

    With ActiveSheet

    For Each shp In ActiveSheet.Shapes

        shp.Copy

        shp_name = shp.TopLeftCell.Offset(0, -1).Value

        With .ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart

              .Parent.Select

              .Paste

              .Export ThisWorkbook.Path & "" & shp_name & ".jpg"

              .Parent.Delete

        End With

    Next

    End With

End Sub

按F5运行代码:结果如下:图片被批量导出到该文件所在的文件夹,且名称和单元格匹配。

代码注解:

Sub 批量导出图片()'程序名

    Dim shp As Shape '定义变量

    With ActiveSheet  '当前活动工作表

    For Each shp In ActiveSheet.Shapes '循环每个图形

        shp.Copy ’复制当前图形

        shp_name = shp.TopLeftCell.Offset(0, -1).Value '获取图片名称为图片左上角单元格往左偏移一个单元格的内容

        With .ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart '插入图表

              .Parent.Select ’选择图表

              .Paste '粘贴图片

              .Export ThisWorkbook.Path & "" & shp_name & ".jpg" ’导出图片到当前文件夹,且命名为单元格的名称

              .Parent.Delete '删除图表

        End With  '与with成对出现

    Next '与FOR成对出现

    End With '与with成对出现

End Sub '程序结束

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多