是否有可能爲worksheet_change
不處理通過退出子掛起/已經發生了用戶的更新應該在條件得不到滿足?我有一個日誌記錄系統,並且不希望用戶一次刪除多個單元格,因爲我的代碼每次處理一個單元格更新 - 最終應該改進代碼以允許這樣做。但與此同時:VBA的Excel Worksheet_Change防止更新
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Selection.Count > 1 Then
MsgBox ("please delete items one at a time")
Exit Sub
End If
這顯示MSGBOX OK,但在選擇的所有單元格的內容刪除收益,應多個小區選擇。被刪除的內容然後被記錄系統遺漏。
好,試圖讓「最終目的地」響應@加里的學生回答,因爲它是不是真的非法刪除多個單元格。
部分使用@binil的解決方案讓我這個僞代碼,但我不夠好,完成它(在範圍內,細胞可以是不連續的)
Dim theoldvals As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
for each c in the oldvals
Sheets("log").ActiveCell.Value = "OLD value" = oldvals(c)
.ActiveCell.Offset(1, 0) = "NEW value" = Target(c) ' where c is the corresponding cell/index in the target range
Next c
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set theoldvals = Target
End Sub
然後集中你的努力,在得到了「死神」。 –