在Excel工作簿中循环访问图表对象

时间:2015-02-10 14:37:11

标签: excel vba charts

我已经看到很多代码在单个工作表中循环,但是我试图遍历工作簿中单个工作表的图表。我的代码如下(你可以看到我只是想把图表保存为PDF):

Sub ExportAllCharts()
Dim Current As Worksheet

' Loop through all of the worksheets in the active workbook.
For Each Current In Worksheets

   If TypeName(Current) = "Chart" Then
       objCht.ExportAsFixedFormat xlTypePDF, Filename:= _
               "c:/" & Current.Name, Quality:=xlQualityStandard, _
               IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
   End If

Next
End Sub

不幸的是,当代码遍历工作簿中的所有工作表时,由于某种原因它会跳过图表。是否有适用于Excel中各个图表的Worksheets?或者是否有其他方法可以做到这一点,我没有想过?

谢谢! 大卫

1 个答案:

答案 0 :(得分:1)

我刚尝试使用此代码进行快速测试,并打印了Chart工作表:

Public Sub test()
    Dim oChart As Chart

    For Each oChart In ActiveWorkbook.Charts
        Debug.Print oChart.Name
    Next
End Sub

那应该做你需要的。仅供参考,一个好的起点是使用VBA对象浏览器,View -> Object Browser或Excel Visual Basic编辑器中的F11。

希望有所帮助。