![ca2d6e4a03fe6e189692e8dd4478de9c.png](https://i-blog.csdnimg.cn/blog_migrate/f14eccec90ad85ef5e402e941c2b8414.jpeg)
- 是否你曾疑惑,为什么PPT中右键可以把图片另存到指定的文件夹,而excel的右键没有这个功能?
- 难道他们不都是微软的吗?
- 难道他们不都是office里的软件吗?
每次要在excel另存图片的时候,脑海就会不停地反复问这几个问题。于是乎,今天实在忍不住了。所以今天要跟大家分享的是用VBA实现excel另存图片的功能。
效果如下:
![de0f5a76bf1845a5b70f60341081a77a.png](https://i-blog.csdnimg.cn/blog_migrate/01bc9a708ebe65ff311e9f8082b2fba6.png)
第一步
将你想要数据区域复制,然后右键--选择性粘贴--图片
(当然,这一步只是为了演示,而需要先做一个图片出来,并不是必要步骤)
![11216f86d6441f7154b1681ecb13e3b3.png](https://i-blog.csdnimg.cn/blog_migrate/3ce027e5bc293eb7b8361260988abc4b.jpeg)
第二步
按住alt和F11,打开VB界面,插入-模块,然后把以下代码复制粘贴至窗口,代码如下:
Sub 另存图片()
Dim shp As Shape
picName = Application.Caller
With ActiveSheet
Set shp = .Shapes(picName)
shp.Copy
With .ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart
.Parent.Select
.Paste
.Export ThisWorkbook.Path & "" & shp.Name & ".jpg"
.Parent.Delete
End With
End With
End Sub
贴完后即可右上角XX,关闭VB界面
![6c2ee534104cd2e6283d1a10d708bc62.png](https://i-blog.csdnimg.cn/blog_migrate/a38e4326f1721883df3fc9f81051e0ef.jpeg)
第三步
右键你要另存的图片,选择指定宏,然后弹出下面的框框,点击框里面的“另存图片”,点确定
![59879feebf96a0ab157c5e080de9446e.png](https://i-blog.csdnimg.cn/blog_migrate/50ed9a4c3b995cfc0678003f1a971c3b.jpeg)
第四步
此时,你把鼠标移动到刚才的图片上的时候,就会如下图一样,鼠标变成一个手指,用尽全力点击,点完后,打开你excel保存的地方,就会发现多了一张jpg图片,搞定(因为上面的代码设定的保存位置与excel文件一致,所以请先保存你的excel,当然你也可以修改,直接指定图片保存的位置)
![d8457dde4159aba01210be1b4548bb6a.png](https://i-blog.csdnimg.cn/blog_migrate/9d6b611364cc2008d90baf896516d008.jpeg)
以上的代码是实现对指定的图片进行另存,你也可以修改代码,加个for循环,不用点击,直接把excel内的所有图片另存。
更多excel小技巧,可查看公众号“Atman小课堂”