遍历 Excel 工作簿中的图表对象

Loop through Chart objects in Excel workbook

我已经看到很多代码在单个工作表中循环,但是我试图循环遍历工作簿中作为单个工作表的图表。我的代码如下(如您所见,我只是想将图表保存为 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 等效项?还是有其他我没有想到的方法?

谢谢! 大卫

我刚刚尝试使用这段代码进行快速测试,它打印了 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。

希望对您有所帮助。