2017-04-20 69 views
0

我有一個選擇的變化,這將觸發macroA和macroB。宏A和B是兩個彼此相關的個體條件。我面臨的問題是當宏A和宏B中的兩個條件都相互滿足時,它會創建非終止循環,在進行選擇時會不斷更改單元格值。如果單元格更改超過3次,如何阻止宏被觸發?

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

Dim rowtarget As Integer 


For rowtarget = 1 To 20 

If Target.Row = rowtarget Then 

    If Target.Column = 3 Then 

     Call MacroA 
     Call MacroB 
     Call MacroA   

    End If 

End If 

Next 

End Sub 

是否有任何代碼可以阻止這個非結束循環,同時創建messagebox?我已經到處搜索,但一無所獲。希望可以有人幫幫我。

回答

2

您可以通過使用Application.EnableEvents = False來防止發生其他事件。將您的呼叫設置爲False,然後返回True。

If Target.Column = 3 Then 
     Application.EnableEvents = False 
     Call MacroA 
     Call MacroB 
     Call MacroA   
     Application.EnableEvents = True 
    End If 
+0

我需要停下來,同時我需要在發生這種情況時創建一個消息框。你有什麼主意嗎? – nx170

+0

是否可以檢查條件而不作任何更改?您可以先做到這一點,然後使用MSGBOX來顯示消息。 –

相關問題