Excel VBA删除与macros的透视图

我的Excel表单上有一个button,可以在单击时创build数据透视表和透视图。 因为它会运行多次,每次运行我需要删除现有的表和图表。 表是没有问题的,但图表每次都用一个递增的数字重新命名。 我需要知道运行图表的名称才能删除它。

这是我的表/图表创build:

Sheets("EditListingCriteria").Select RowNumber = "R" & Application.CountA(Range("A:A")) & "C19" Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.Worksheets("PivotTable").PivotTables("PivotTable5").PivotCache. _ CreatePivotTable TableDestination:="Charts!R5C3", TableName:="PivotTable6" _ , DefaultVersion:=xlPivotTableVersion14 Sheets("Charts").Select Cells(5, 3).Select ActiveSheet.PivotTables("PivotTable6").AddDataField ActiveSheet.PivotTables( _ "PivotTable6").PivotFields("Material Weight"), "Sum of Material Weight", xlSum With ActiveSheet.PivotTables("PivotTable6").PivotFields("Shipment Month") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable6").PivotFields("Ordered Ship Mode") .Orientation = xlPageField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable6").PivotFields("Actual Ship Mode") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xl3DColumnClustered ActiveChart.SetSourceData Source:=Range("Charts!$C$5:$F$12") 'Rename chart here? Rows("2:12").RowHeight = 0 Rows("1:1").RowHeight = 0 

而删除:

 ActiveSheet.ChartObjects("Chart 10").Activate ActiveChart.Parent.delete 

我试图按照重命名,但它总是打破

  chartname = ActiveChart.Name ActiveSheet.Shapes(chartname).Name = "MonthlyChart" 

尝试这个:

 'To create a chart Dim S As Worksheet Dim C As Chart Set S = Activesheet Set C = S.Shapes.AddChart.Chart S.Shapes(C.Parent.Name).Name = "MonthlyChart" 

 'To delete the chart later in the same sub: C.Parent.Delete 'Or if your delete code is in a different sub (I suspect it is): Dim S As Worksheet Set S = Activesheet S.ChartObjects("MonthlyChart").Delete