Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 10218|回复: 3

将EXCEL的选定区域保存为图片

[复制链接]
发表于 2011-1-19 20:08 | 显示全部楼层 |阅读模式
本帖最后由 raulerini 于 2011-1-19 20:14 编辑

思路:先利用CopyPicture方法,将区域复制为图片。
然后粘贴为图片。再插入一个chart对象,利用chart对象的Export方法,将复制的图片单独存到本地硬盘上。

参考代码如下:

  1. Sub 截取图片()
  2.     Dim myPic As Shape, pic As Shape       '定义变量
  3.     Dim rng       As Range
  4.     For Each pic In ActiveSheet.Shapes
  5.         If pic.Type = msoPicture Then pic.Delete    '遍历工作表,删除图像格式的对象
  6.     Next
  7. '通过application的inputbox方法来选择单元格区域
  8. Set rng = Application.InputBox("请选择需要截取的屏幕范围:", "截取范围", Type:=8)  
  9.      rng.CopyPicture xlScreen, xlBitmap     '复制区域为图像
  10.     ActiveSheet.Paste Destination:=ActiveSheet.Range("A1")    '粘贴复制的图像到当前的工作表中
  11.     Set myPic = ActiveSheet.Shapes(1)      '将复制的图像赋值给变量myPic
  12. '插入一个图表,图表位于A1左上角(坐标0,0),长宽等于复制的图像的长宽
  13. With ActiveSheet.ChartObjects.Add(0, 0, myPic.Width, myPic.Height).Chart   
  14.         myPic.Copy                         '复制图像
  15.         .Paste                             '粘贴至图表中
  16. '利用application的另存为对话框获取存储的路径,默认文件名为myExcelPic,格式为JPG格式
  17. SaveName = Application.GetSaveAsFilename(InitialFileName:="MyExcelPic", filefilter:="图片文件(*.JPG),*.JPG")
  18.                If SaveName <> "False" Then .Export SaveName, "JPG"    '不允许按"取消"按钮,否则将不会执行输出为图像的动作
  19.         .Parent.Delete                     '删除图表的父对象————图表区对象(也即是删除整个图表)
  20.     End With
  21.     myPic.Delete                           '临时复制的图像也一并删除
  22.     Set myPic = Nothing                    '销毁对象变量
  23.     Set rng = Nothing
  24. End Sub
复制代码
Book1.rar (10.23 KB, 下载次数: 78)
发表于 2011-1-19 20:23 | 显示全部楼层
回复

使用道具 举报

发表于 2011-1-19 21:38 | 显示全部楼层
回复

使用道具 举报

发表于 2013-6-24 23:50 | 显示全部楼层
发现个问题,如果选择的区域里面已经有图片了,这个VBA就没法执行完了,就会把本身的图片输出到路径。
能否把代码更新一下,非常感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-30 03:14 , Processed in 0.318786 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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