|
本帖最后由 zhigangchen 于 2016-6-25 16:18 编辑
之前,在excelhome论坛,已经有网友给出了从excel工作表区域截图并保存的方法和代码。但是在excel 2016环境下,我试了以后,发现截图出来的图片都是空白的,研究了一下,发现是在粘贴时,图片没有粘贴到chartoject之中。因此对代码进行了改良,可以使用了。代码如下:(申明:这此代码是网上下载的,只是经过我的修改!)
Sub SaveRngToJpg()
Dim rng As Range
Dim ad$, m&, mc$, shp As Shape
Dim nm$, n&, myFolder$
Sheet1.Activate
n = 0
myFolder = ThisWorkbook.Path & "\图片\" '指定文件夹名称
Set rng = Application.InputBox("请选择单元格", "选择", Type:=8)
rng.Select
Selection.Copy
ActiveSheet.Pictures.Paste
For Each shp In ActiveSheet.Shapes
If shp.Type = 13 Then
If Len(Dir(myFolder, vbDirectory)) = 0 Then
MkDir myFolder
End If
n = n + 1
ad = shp.TopLeftCell.Address
m = shp.TopLeftCell.Row
nm = Replace(Replace(rng.Address, "$", ""), ":", "-") & ".jpg" ’此处jpg可以更改为.png或.bmp,这些格式如果压缩,图片可能更清晰一些。
shp.CopyPicture
With ActiveSheet.ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart
.Parent.Select '必须要选择父对象chartojbect之后再粘贴,这样才能真正的粘上去。
.Paste
.Export myFolder & nm, "JPG"
.Parent.Delete
End With
shp.Delete
End If
Next
MsgBox ("已保存到图片文件夹下")
End Sub
|
评分
-
5
查看全部评分
-
|