2013-10-07 27 views
0

我在我的工作表(图表)上有几个图表,我只想导出6个特定的图表。当我选择一个图表并转到Layout选项卡时,我看到一个名为Chart Name的东西,我假设它让我选择图表名称。我尝试将其中一个图表的名称更改为“ChartA”。请帮助这个简单的VBA代码。如何通过名称参考导出图表

Sub SaveJPGTest() 
Chart("ChartA").Export "Z:\specialChart.jpg" 
End Sub 

回答

3

添加basePath将jpg保存在与excel文件相同的目录中。保存为PNG,因为它看起来质量更好,文件尺寸也比JPG小。不知道这是否是最好的文件格式。

此代码设置工作表charts和图表ChartA处于活动状态,然后保存活动图表。

Sub SaveAreaPowerJPGs() 
    Dim basePath As String 
    basePath = ThisWorkbook.Path & "\" 
    ActiveWorkbook.Sheets("charts").Activate 

    ActiveSheet.ChartObjects("ChartA").Activate 
    ActiveChart.Export Filename:=basePath & "ChartA.jpg", Filtername:="PNG" 
End Sub 
+0

重新文件格式:http://www.sitepoint.com/gif-png-jpg-which-one-to-use/ – pnuts

2

复制自:http://windowssecrets.com/forums/showthread.php/129693-Export-charts-from-Excel-into-any-image-format稍作改动。

Sub ChartToJPG() 
Dim Chrt As Chart 
Application.ScreenUpdating = False 
ActiveSheet.ChartObjects("ChartA").Activate 
ActiveChart.ChartArea.Copy 
Set Chrt = Charts.Add 
Chrt.Paste 
Chrt.Export Filename:="C:\Users\Maudibe\Desktop\MyChart.jpg", Filtername:="JPG" 
Application.DisplayAlerts = False 
ActiveSheet.Delete 
Application.DisplayAlerts = True 
Application.ScreenUpdating = True 
End Sub 

选择适合的路径。

+0

您的答案中的额外代码是没有必要的。介意我是否清理它以显示什么是必需的? – Stuart

+0

@Stuart请做,或将其作为单独(更好!)的答案发布。我所做的只是复制别人的工作 - 但承认:-) – pnuts

+0

当然,当我的答案是你的一个子集时,就不能确定礼节。 – Stuart

0

我修改了这个代码,当你的图表在它自己的工作表中。它还会自动获取活动工作表名称SheetName,并将其用作保存类似于上述文件的文件名。我还通过将中的“\”置换了basePath。请享用。

Sub Save_Chart() 
    Dim basePath As String 
    basePath = ThisWorkbook.Path 
    SheetName = ActiveSheet.Name 

    ActiveWorkbook.Sheets(SheetName).Activate 
    ActiveSheet.Export Filename:=basePath & "\" & SheetName & ".jpg", Filtername:="JPG" 
End Sub