Как удалить все диаграммы в книгах Excel, используя VBA.
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.Parent.Delete
Как удалить все диаграммы в книгах Excel, используя VBA.
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.Parent.Delete
Это должно заботиться о ваших потребностях. Он также запрашивает пользователя через MsgBox в качестве меры предосторожности против удаления требуемых диаграмм / объектов.
Sub delAllChartsInWorkbook() ' ' delchart Macro ' Macro recorded 1/4/2016 by ejbytes ' 'Variables Dim count As Integer Dim LIST As Integer Dim currSheet As Worksheet Dim myChart As ChartObject Dim YesOrNoAnswerToMessageBox As String Dim QuestionToMessageBox As String Dim tmpName As String 'Define Variables count = ActiveWorkbook.Worksheets.count '**************************************************** 'Loop example using a count. * '**************************************************** For LIST = 1 To count MsgBox "This is a loop example. This is Sheet: " _ & ActiveWorkbook.Worksheets(LIST).Name Next LIST '**************************************************** '* Loop example all sheet in this workbook * '* Cycle through each Sheet * '* Nested Loops: * '* * '* Outer Loop * '**************************************************** For Each currSheet In Worksheets MsgBox "Current sheet: " & currSheet.Name '**************************************************** '* Cycle through each Chart Object on current sheet * '* Sheets("Sheet1").ChartObjects * '* * '* Inner Loop * '**************************************************** For Each myChart In currSheet.ChartObjects QuestionToMessageBox = "DELETE chart: '" & myChart.Name & "' ?" YesOrNoAnswerToMessageBox = _ MsgBox(QuestionToMessageBox, vbYesNo, "Yes/No Comment?") If YesOrNoAnswerToMessageBox = vbNo Then MsgBox "Chart: " & myChart.Name & " skipped." Else tmpName = myChart.Name myChart.Delete MsgBox "Chart: " & tmpName & " Deleted!" 'Modify my chart? You can do this too: 'myChart.Chart.ChartType = xlLine End If Next myChart Next End Sub
Чтобы удалить все диаграммы на активном листе:
Sub DeleteChartsOnActiveSheet()
ActiveSheet.ChartObjects.Delete
End Sub
Чтобы удалить все диаграммы на всех листах активной рабочей книги:
Sub DeleteChartsInActiveWorkbook()
' delete chart sheets
ActiveWorkbook.Charts.Delete
' delete charts embedded in other sheets
Dim sh As Object
For Each sh in ActiveWorkbook.Sheets
sh.ChartObjects.Delete
Next
End Sub