簡體   English   中英

VBA檢測Excel電子表格中的更改

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM