我需要檢測Workbook_SheetChange單元格的值是否發生了變化。
雙擊任何單元格時也會觸發此事件。我想避免這種情況,因為這樣做時,在您鍵入新值之前,單元格并沒有真正改變。
有什么辦法可以在那個事件中避免這種情況?
uj5u.com熱心網友回復:
您可以使用Worksheet_BeforeDoubleClick&的組合Worksheet_Change來檢查單元格值是否真的發生了變化,或者只是雙擊而沒有任何變化
Option Explicit
Private oldValue As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
oldValue = Target.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> oldValue Then
MsgBox "Value is Updated"
End If
End Sub
uj5u.com熱心網友回復:
請Private在作業表代碼模塊中復制接下來的兩個事件和一個變數:
Option Explicit
Private PrevVal As String
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.cells.count > 1 Then Exit Sub
If CStr(Target.Value) = PrevVal Then Exit Sub
Debug.Print "Changed..."
'your code in case of a real change...
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.cells.count > 1 Then Exit Sub
PrevVal = CStr(Target.Value)
End Sub
該SelectionChange事件會將選定的單元格值放置在PrevVal變數中,該變數將用于將前一個值與Change事件中的“結果”值進行比較。
它不會處理多個單元格選擇的情況。在某些情況下,不可能記住先前的值。在現有范圍上復制多個單元格范圍時,僅選擇一個單元格...
它可以適用于處理這種情況,前提是要被先前選擇的粘貼覆寫的確切范圍。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/321475.html
