簡體   English   中英

檢查是否存在自動整形

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM