Excel VBA 7.78Excel中的图片如何批量保存?轻松保存他人文件中的精美图片!
Excel中的图片如何批量保存?轻松保存他人文件中的精美图片!
点击上方“Excel和VBA”,选择“置顶公众号”
致力于原创分享Excel的相关知识,源码,源文件打包提供
一起学习,一起进步~~
今天我们继续分享Excel中图片的一些常规操作,很多时候我们在欣赏其他人的作品或者是其他公司的产品数据的时候,都需要将对方的Excel文件中的图片保存下来,一般情况下图片的数量都是比较多的,如果单纯依靠手工来实现另存的话,工作量非常的大,而且非常的浪费时间,所以今天就和我一起来学习下通过VBA来批量的将这些图片快速的保存到自己本地吧
场景说明
这是我们之前76节那篇分享的excel
不同的是我们之前是通过VBA来实现批量插入图片,我们今天换个场景,我们现在是希望将这些图片全部保存到我们本地文件夹中,来看看可以如何操作
代码区
Sub test()
Dim shp As Shape
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then
pathn = .SelectedItems(1)
For Each Item In ActiveSheet.Shapes
a = Item.Name & ".jpg"
Item.CopyPicture
With ActiveSheet.ChartObjects.Add(0, 0, Item.Width, Item.Height).Chart
.Paste
.Export pathn & "\" & a
.Parent.Delete
End With
Next Item
End If
End With
End Sub
看起来代码也不算很长,我们来看看效果如何
从动图中可以看出来,初始状态中,我们的文件夹是没有任何的文件的,但是经过VBA代码的执行之后,我们发现Excel中的几张图片都已经被完整的保存下来了
代码分析
来看看今天的代码
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then
pathn = .SelectedItems(1)
******
End If
End With
这段代码都很熟悉了,我在之前的文章中也是经常使用这个方法,就是用来选择要保存图片的文件夹的
For Each Item In ActiveSheet.Shapes
*****
Next Item
然后开始在整个工作表中遍历循环所有的图片
shapes上节我们在学习图片的删除的时候,已经介绍过,他代表了Excel中所有的图片的集合
a = Item.Name & ".jpg"
这里的a是设置图片的名字,当然你如果想要更换成为其他的名字,也可以在这里进行设置
With ActiveSheet.ChartObjects.Add(0, 0, Item.Width, Item.Height).Chart
.Paste
.Export pathn & "\" & a
.Parent.Delete
End With
这里主要是设置图片的大小,存储名称,存储位置的,属于固定操作,大家可以直接套用。
看那么高级的功能在,你还打算继续手工保存吗?
==========================
本节课的案例源码已经上传,需要的小伙伴后台私信“7-78-H6”,希望大家多支持~~,多多关注 ~ ~
好了,明晚21:00,准时再见!
因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。