2015-05-04 148 views
1

 在一個範圍內刪除一個自定形 - VBA

這就是我試圖做的。當我點擊一個按鈕時,上面的自動定形被複制到A8:F12矩形中。

的第一按鈕(錄製宏)代碼:

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

我的問題是我想打一個按鈕,可以刪除自選圖形在A8:F12範圍。我發現這裏面刪除所有自選圖形在工作表中:

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

或它的名字刪除自選圖形(不要在我的情況下工作,會產生新的自選圖形,所以我不知道他們的名字)

我知道這是快點擊形狀,然後按'刪除',但好奇心,我想知道是否有可能在VBA中做到這一點

回答

1

下面的一種方法是測試形狀左上角的單元格是否位於您的刪除範圍:

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 
相關問題