[英]Check if Autoshape exists
我試圖創建一個簡單的宏來刪除一些數據,包括Autoshape- Shapes("ACCESS")
,但是我希望僅在存在Autoshape的情況下運行此宏。
如果不存在,則動作將只是Range("B2").Select
有人可以幫忙嗎?
我的密碼
Sub DeleteRepWT()
ActiveSheet.Shapes("ACCESS").Select
Selection.ShapeRange.IncrementLeft 57#
Selection.ShapeRange.IncrementTop -85.5
Range("M4").Select
ActiveSheet.Shapes("ACCESS").Select
Selection.Delete
Columns("K:AI").Select
Selection.Delete Shift:=xlToLeft
Range("B2").Select
End Sub
您可以使用對象類型的形狀,在我的代碼中為Shp
,並嘗試將其設置為Set Shp = ActiveSheet.Shapes("ACCESS")
。
添加On Error Resume Next
在嘗試Set
形狀對象之前(因此不會出現運行時錯誤),然后在嘗試Set
形狀之后,可以檢查If Shp Is Nothing
,這意味着檢查是否可以Set
形狀(如果不是,則意味着工作表中沒有Shapes("ACCESS")
)。
碼
Option Explicit
Sub DeleteRepWT()
Dim Shp As Shape
On Error Resume Next
Set Shp = ActiveSheet.Shapes("ACCESS") ' try to set the object to "ACCESS"
On Error GoTo 0
If Shp Is Nothing Then ' if there is no Shapes("ACCESS")
Range("B2").Select
Else ' shape exists
With Shp
' rest of your original code here ...
End With
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.