我有一张包含三张excel表的工作簿。 我希望用户能够从第三张表中复制数据,这是第二张表中的计算结果。 但是,我正在使用的代码
'The code for the Macro
Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim col As String
Dim msg As String
col = Split(Target.Address(1, 0), "AOS")(0)
'Permet d'éviter les modifications des modifications manuelles des cellules calculées automatiquement
If Intersect(Target, Sheets("AOS").Range("A3:AP100")) Is Nothing Then Exit Sub
'We're going to make a change, so turn this off
'so that macro doesn't get called infinitely
Sheets("AOS").Application.EnableEvents = False
Sheets("AOS").Application.Undo
MsgBox "Can't touch this!", vbCritical + vbOKOnly, "Error !!!!!"
Sheets("AOS").Application.EnableEvents = True
它也是第二张表中的撤消更改。 好像是Sheets(“AOS”)。Application.Undo不能正常工作。
任何建议..?
答案 0 :(得分:0)
您正在使用SelectionChange
事件,您应该使用Change
事件。每次更改选择时都会出现SelectionChange
,因此当您使用“撤消”时,它会反转最后一次可逆动作,这可能发生在另一个工作表中。
答案 1 :(得分:0)
来自MSDN:
此方法仅撤消用户之前采取的最后一个操作 运行宏,它必须是宏中的第一行。它 不能用于撤消Visual Basic命令。