最近调试 VBA 实现了一个截图另存为功能。
分享一下,有类似需求的人可以少走弯路。
Sub picSaveAs()
'截图另存为图片
Dim myPic As Shape, pic As Shape
Dim rng As Range, n%
n = ActiveSheet.Shapes.Count
'设定rng=Application.InputBox(“请选择需要截取的屏幕范围:”,“截取范围”,类型:=8)
Set rng = Worksheets(“ASA”).Range(“BH2:CN110”)
rng.CopyPicture xlScreen, xlBitmap
'ActiveSheet.Paste目标位置:=ActiveSheet.Range(“A1”)
ActiveSheet.Paste Destination:=ActiveSheet.Range(“A1”)
Set myPic = ActiveSheet.Shapes(n + 1)
myPic.Copy
With ActiveSheet.ChartObjects.Add(0, 0, myPic.Width, myPic.Height).Chart
.Parent.Select
.Paste
'另存为的地址及文件名称
.Export “\192.168.1.13\化\production.JPG”
.Parent.Delete
End With
'删除 myPic
myPic.Delete
'设定myPic=空值
Set myPic = Nothing
'设定rng=空值
Set rng = Nothing
End Sub