我试图用VBA删除一系列单元格中的两个图表。它不是删除图表,而是一遍又一遍,而没有做任何事情。这是我到目前为止所尝试的。删除范围内的图表
For Each ChartObjects In Range(Cells(i + 3, 12), Cells(i + 19, 50))
ChartObjects.Delete
Next ChartObjects
我试图用VBA删除一系列单元格中的两个图表。它不是删除图表,而是一遍又一遍,而没有做任何事情。这是我到目前为止所尝试的。删除范围内的图表
For Each ChartObjects In Range(Cells(i + 3, 12), Cells(i + 19, 50))
ChartObjects.Delete
Next ChartObjects
您可以使用ChartObject的TopLeftCell属性检查表的左上角下的小区是否在上述范围内...
Dim oChrtObj As ChartObject
For Each oChrtObj In ActiveSheet.ChartObjects
If Not Application.Intersect(oChrtObj.TopLeftCell, _
Range(Cells(i + 3, 12), Cells(i + 19, 50))) Is Nothing Then
oChrtObj.Delete
End If
Next oChrtObj
但是请注意,你也可以使用单行删除所有图表...
activesheet.chartobjects.delete
希望这有助于!
Clever。每次只有ChartObject时,我只需添加一个“s”。 –
实际上,为了清晰起见,由于ChartObject是一种数据类型,For Each控制变量的名称应该不同于名称ChartObject。所以我已经相应地修改了代码。 – Domenic
ChartObjects不能分配给范围对象。您需要执行诸如检查“ChartArea.Top”或“ChartArea.Left”或“ChartArea.Width”与范围相同的坐标。或者你可以为图表使用某种类型的动态命名,并选中'Chart.Name'属性来删除 –