Как удалить все диаграммы в книгах 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