繁体   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