Powerpoint的VBA删除空列?

我有几个Powerpoint文件每月生成,这些文件有几个图表embeddedExcel表格后面,一些月份一些系列(列)充满了零,我想find一个Powerpoint的macros,进入每个图表看起来embeddedexcel并删除全部为零的列。

现在我有代码在Excel中执行它

Sub DeleteColumns() Dim LR As Long, LC As Long Dim i As Long, j As Long LR = Cells.Find(What:="*", SearchDirection:=xlPrevious,SearchOrder:=xlByRows).Row LC = 52 For j = LC To 1 Step -1 For i = LR To 1 Step -1 If Cells(i, j).Value = 0 Then Columns(j).Delete Exit For End If Next i Next j End Sub 

而它的工作,我只是不知道如何参考PowerPoint中的所有图表,然后针对embedded的Excel表中抨击他们。

非常感谢

您可以像这样公开所有基础的Excel图表。

我不知道你是如何删除零列,所以build议你在下面突出显示的位置添加这个。

 Sub ChangeChartData() Dim pptChart As Chart Dim pptChartData As ChartData Dim xlWorkbook As Object Dim sld As Slide Dim shp As Shape For Each sld In ActivePresentation.Slides For Each shp In sld.Shapes If shp.HasChart Then Set pptChart = shp.Chart Set pptChartData = pptChart.ChartData pptChartData.Activate Set pptWorkbook = pptChartData.Workbook 'your delete code here pptWorkbook.Close True End If Next Next Set pptWorkbook = Nothing Set pptChartData = Nothing Set pptChart = Nothing End Sub