2016-02-09 82 views
-2

我們是否可以在同一個工作表中有Worksheet_Change & Worksheet_SelectionChange。 如果是,優先順序是什麼?我們是否可以在同一工作表中有Worksheet_Change&Worksheet_SelectionChange

謝謝

吉恩當然

+0

那麼,當選擇改變時,一個會觸發,另一個當一個單元格的值通過直接的用戶交互而改變。你可以使用'Application.EnableEvents = False'函數來隔離它們。確保在退出子文件之前將其恢復爲真。 –

回答

2

,您可以:

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 
Debug.Print Target.Row 
End Sub 

Private Sub Worksheet_SelectionChange(ByVal myTarget As Range) 

Debug.Print myTarget.Address 
End Sub 

選擇變化首先發生,因爲你改變一個單元格之前更改選擇。

1

您可以通過貼在工作表中的VBA以下測試這個超級簡單:

Private Sub Worksheet_Change(ByVal Target As Range) 
    MsgBox "Change" 
End Sub 

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    MsgBox "selection change" 
End Sub 

你會發現,這些事件通常不會在同一時間,除非你在一個單元格中輸入新的文本火然後按回車鍵移至新的單元格。在這種情況下,「更改」事件將首先觸發,然後「選擇更改」將觸發。

相關問題