遍历 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。
希望对您有所帮助。
我已经看到很多代码在单个工作表中循环,但是我试图循环遍历工作簿中作为单个工作表的图表。我的代码如下(如您所见,我只是想将图表保存为 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。
希望对您有所帮助。