VBA – 范围到JPG图片

我试图从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 

已经在他的评论中提到了@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 

如果未指定path,则Case.jpg将保存在默认保存位置。 这可能是您的用户文档目录C:\Users\YourName\Documents\

以下是如何在与工作簿相同的path中导出:

 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