我正在尝试将Excel范围导出为图片,因此,我使用以下代码
Set Sheet = Worksheets("Test")
zoom_coef = 100 / Sheet.Parent.Windows(1).Zoom
Set area = Sheet.Range(Sheet.PageSetup.PrintArea)
area.CopyPicture xlPrinter
Set chartobj = Sheet.ChartObjects.Add(0, 0, area.Width * zoom_coef, area.Height * zoom_coef)
Sheet.ChartObjects(1).Activate
chartobj.Chart.Paste
chartobj.Chart.Export "C:\Test.png", "png"
chartobj.Delete
这在我调试时工作正常,但是当我运行它时,图像没有粘贴到图表中,我得到一个空白的白色图像
我已经尝试过把Application.Wait,Loop但没有运气 请有人帮帮我
答案 0 :(得分:0)
这对我很有用。
你的Sheet.PageSetup.PrintArea
是什么?我已将其替换为硬编码范围。
Sub TestMe()
Dim SHeet As Worksheet
Set SHeet = Worksheets(1)
zoom_coef = 100 / SHeet.Parent.Windows(1).Zoom
Set area = SHeet.Range("A1:A6")
area.CopyPicture xlPrinter
Set chartobj = SHeet.ChartObjects.Add(0, 0, area.Width * zoom_coef, area.Height * zoom_coef)
SHeet.ChartObjects(1).Activate
chartobj.Chart.Paste
chartobj.Chart.Export "C:\path\file.png", "png"
chartobj.Delete
End Sub