[英]VBA to detect changes in Excel spreadsheet
我有一個Excel電子表格,它充當具有許多輸入框的表單(這是我的客戶要求的)。 我有“清除”和“保存”按鈕,后者將數據作為記錄推送到Access數據庫。 我已經能夠提示使用msgboxes以便用戶在沒有先保存的情況下無法清除,並且隨后的保存受到挑戰(因為它們很可能是偶然的重復),但是我無法弄清楚應該如何提示重新保存用戶在第一次保存后對表單進行更改(但是清除表單會重置保存標志)。 甚至可以做到這一點(不能選擇用戶窗體)? 理想情況下,我需要一個宏來檢測某些單元格中的任何一個何時發生了更改。
將此放置在“ ThisWorkbook”中
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim result As Boolean
Dim sheetName As String
Dim rangeName As String
'You could alternatively create array variables below if interested in multiple sheets/cells
Dim mySheet As String
Dim myRange As String
'User Defined Input. What sheet and range are you interested in tracking changes for?
mySheet = "Worksheet Name"
myRange = "$C$3"
'Store what changed
sheetName = Target.Parent.Name
rangeName = Target.Address
If sheetName = mySheet And rangeName = myRange Then
'A change occurred for a range you are interested in
result = True
End If
'Did a change occur in your range of interest?
If result = True Then
'This is where you could prompt to save changes.
MsgBox "Change detected in " & sheetName & "!" & rangeName & "."
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.