我试图从excel中的特定范围获取jpg文件
我目前正在
来自_Worksheet对象的Range方法的1004运行时错误。
这就是我的代码:
Sub Export()
Dim ws As Worksheet
Dim Rng As Range
Dim Chrt As Chart
Set ws = ActiveSheet
Set Rng = Range("B2:H11")
ws.Range(Rng).CopyPicture
Set Chrt = Charts.Add
With Chrt
.Paste
.Export FileName = "Case.jpg", Filtername:="JPG"
End With
End Sub
答案 0 :(得分:7)
@J_Lard在他的评论中已经提到了主要错误。
但我会使用ChartObject
而不是Chart
表。您可以确定输出的大小,而不是获取图片中的整个图表区域。
使用F8
步骤时,粘贴和导出将起作用,而实时运行时,ChartObject
需要激活。
Sub Export()
Dim oWs As Worksheet
Dim oRng As Range
Dim oChrtO As ChartObject
Dim lWidth As Long, lHeight As Long
Set oWs = ActiveSheet
Set oRng = oWs.Range("B2:H11")
oRng.CopyPicture xlScreen, xlPicture
lWidth = oRng.Width
lHeight = oRng.Height
Set oChrtO = oWs.ChartObjects.Add(Left:=0, Top:=0, Width:=lWidth, Height:=lHeight)
oChrtO.Activate
With oChrtO.Chart
.Paste
.Export Filename:="Case.jpg", Filtername:="JPG"
End With
oChrtO.Delete
End Sub
如果未指定路径,则Case.jpg
将默认保存
保存位置。这可能是您的用户文档目录C:\Users\YourName\Documents\
答案 1 :(得分:0)
以下是如何在与工作簿相同的路径中导出:
Sub Export()
Dim ws As Worksheet
Dim Rng As Range
Dim Chrt As Chart
Dim ExportPath As String
Set ws = ActiveSheet
Set Rng = ws.Range("B2:H11")
ExportPath = ThisWorkbook.Path & "\Case.jpg"
Set Chrt = ThisWorkbook.Charts.Add
Rng.CopyPicture xlScreen, xlBitmap
With Chrt
.Paste
.Export FileName:=ExportPath, Filtername:="JPG"
End With
End Sub