MS Excel如何使用VBA撤消多个操作

MS Excel如何使用VBA撤消多个操作,vba,excel,undo,Vba,Excel,Undo,我想知道是否可以撤消撤消队列中的所有操作 我知道Application.Undo函数,但这只会撤消最后一个操作并清除队列,我尝试将其放入一个循环中,它只是不断撤消,然后重新执行 额外信息: 用户以只读方式打开表单, 意外更改字段然后使用一个表单进行更改,然后将其保存(在vba中),意外更改也会保存, 我希望在用户运行表单之前撤消所有意外更改,以便只保存必要的更改 我可以一次撤消多个操作吗?您可以关闭工作簿而不保存。这是我知道的唯一方法。要避免数据丢失,请在数据副本上运行宏 基本上,VBA运行后无

我想知道是否可以撤消撤消队列中的所有操作

我知道Application.Undo函数,但这只会撤消最后一个操作并清除队列,我尝试将其放入一个循环中,它只是不断撤消,然后重新执行

额外信息:
用户以只读方式打开表单,
意外更改字段然后使用一个表单进行更改,然后将其保存(在vba中),意外更改也会保存,
我希望在用户运行表单之前撤消所有意外更改,以便只保存必要的更改


我可以一次撤消多个操作吗?

您可以关闭工作簿而不保存。这是我知道的唯一方法。要避免数据丢失,请在数据副本上运行宏


基本上,VBA运行后无法撤消任何操作…

您可以关闭工作簿而不保存。这是我知道的唯一方法。要避免数据丢失,请在数据副本上运行宏


基本上,在VBA运行后,您无法撤消任何操作…

您是要使用VBA撤消所有操作,还是不使用VBA?另外,如果没有一些相当聪明/复杂的编码,那么,如果你删除一个单元格,你就不能像使用“CTRL+Z”那样“撤销”一个宏。我只想撤销用户键入的任何内容,所以只有手动操作(没有宏)什么版本的Excel?在2016年(我相信是更早),您可以转到撤消,单击向下箭头,查看以前的操作,并将其反转。“你只能看到最近的动作吗?我不是用户,用户不知道他们键入了什么,我宁愿让系统健壮,也不愿告诉用户停止犯错。”她说此方法仅撤消用户在运行宏之前执行的最后一个操作,并且必须是宏中的第一行。它不能用于撤消Visual Basic命令。”虽然它不必是宏中的第一行(当然,它必须在VBA本身进行任何更改之前发生),关于只撤消最后一个操作的部分是正确的。如果您不希望用户通过表单以外的方式对工作表进行更改,为什么不保护工作表?您是在尝试使用VBA撤消所有操作,还是不使用VBA?另外,如果没有一些相当巧妙/复杂的编码,AFAIK,您无法像使用“CTRL+Z”一样“撤消”宏“例如,如果删除一个单元格,我只想撤消用户键入的任何内容,因此只需手动操作(无宏)什么版本的Excel?”?在2016年(我相信是更早),您可以转到撤消,单击向下箭头,查看以前的操作,并将其反转。“你只能看到最近的动作吗?我不是用户,用户不知道他们键入了什么,我宁愿让系统健壮,也不愿告诉用户停止犯错。”她说此方法仅撤消用户在运行宏之前执行的最后一个操作,并且必须是宏中的第一行。它不能用于撤消Visual Basic命令。”虽然它不必是宏中的第一行(当然,它必须在VBA本身进行任何更改之前发生),仅撤消最后一个操作的部分是正确的。如果您不希望用户通过表单以外的方式对工作表进行更改,为什么不保护工作表呢?