在一个范围内删除一个自定格式 – VBA

这是我试图做的。 当我点击一个button,上面的autoshape被复制在A8:F12矩形中。

第一个button的代码(logging的macros):

Sub addTextbox1() Range("A2:C3").Select Range("C2").Activate Selection.Copy Range("B9").Select ActiveSheet.Paste End Sub 

我的问题是我想做一个button,可以擦除A8:F12范围内的autoshape。 我发现这删除工作表中的所有自动形状:

 Sub DeleteShapes() Dim Shp As Shape For Each Shp In ActiveSheet.Shapes Shp.Delete Next Shp End Sub 

或者通过它的名字删除一个autoshape(不要在我的情况下工作,新的autoshapes生成,所以我不知道他们的名字)

我知道这是快点击形状,然后按'删除',但好奇心,我想知道是否有可能在VBA

下面的一种方法是testing形状左上angular的单元格是否位于删除范围内:

 Sub DeleteShapes() Dim Shp As Shape For Each Shp In ActiveSheet.Shapes If Not Application.Intersect(Shp.TopLeftCell, ActiveSheet.Range("A8:F12")) Is Nothing Then Shp.Delete Next Shp End Sub