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