VBA来检测Excel电子表格中的更改

我有一个Excel电子表格,充当一个input框的数量(这是我的客户要求)的forms。 我有“清除”和“保存”button,后者将数据作为logging推送到Access数据库。 我已经能够提示使用msgboxes,以便用户不能清除没有第一次保存,随后的保存是挑战(因为他们很可能是意外欺骗),但我无法弄清楚如何提示重新保存应该用户在第一次保存之后对表单进行更改(但是清除表单重置保存标志)。 甚至可以这样做(用户表单不是一个选项)? 理想情况下,我需要一个macros,它可以检测到某个特定的几个单元格中的任何一个单元格发生了变化。

把它放在“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