【发布时间】:2021-05-28 00:44:20
【问题描述】:
我的 VBA 代码循环遍历一系列范围,并检查每个范围内是否只有一个图表,删除任何额外的图表。我想从正在循环的图表对象集合中删除我已经处理过的所有图表,如何从图表对象中删除图表对象?
这是我当前的代码。
Dim ChartsNotChecked As ChartObjects
Dim ChartsChecked As ChartObjects
Dim i As Long
Dim j As Long
Dim ChartBox As Range
Dim Char As ChartObject
Dim FirstChart As ChartObject
Dim OneFound As Boolean
Set ChartsNotChecked = ActiveSheet.ChartObjects
For j = 10 To 100 Step 10
Set ChartBox = Range(Cells(1, j - 9), Cells(10, j))
OneFound = False
For Each Char In ChartsNotChecked
If Not Intersect(Char.TopLeftCell, ChartBox) Is Nothing Then 'check if chart intersects current chartbox
If Not OneFound Then 'catches first intersecting chart automatically
Set FirstChart = Char
OneFound = True
Else
If Not FirstChart Is Nothing Then Char.Delete 'deletes any other charts
End If
End If
Next Char
'format FirstChart
'remove FirstChart from ChartsNotChecked
'add FirstChart to ChartsChecked
Next j
【问题讨论】:
标签: excel vba loops excel-charts