VBA检测用户何时执行撤消或重做
在VBA中,在工作表更改事件中,是否有方法知道用户已执行了撤消或重做,更具体地说是重做。记住,也可以使用和 我使用了一种方法来比较撤销和重做堆栈高度的相反演变,除了1种不可约情况外,这两种方法都很有效: 当重做堆栈高度从1变为0时,可能有两个原因:VBA检测用户何时执行撤消或重做,vba,undo,redo,Vba,Undo,Redo,在VBA中,在工作表更改事件中,是否有方法知道用户已执行了撤消或重做,更具体地说是重做。记住,也可以使用和 我使用了一种方法来比较撤销和重做堆栈高度的相反演变,除了1种不可约情况外,这两种方法都很有效: 当重做堆栈高度从1变为0时,可能有两个原因: 用户已执行最后一次重做 或者用户在工作表中执行了一个简单的更改,清空了重做堆栈 我没有找到任何东西来区分这两种情况 .OnAction不适用于内置CommandBar控件,并且没有其他属性提供有用的信息 使用的两个CommandBar控件是: 撤
- 用户已执行最后一次重做
- 或者用户在工作表中执行了一个简单的更改,清空了重做堆栈
.OnAction
不适用于内置CommandBar控件,并且没有其他属性提供有用的信息
使用的两个CommandBar控件是:
Application.commandbar(“标准”).FindControl(ID:=128)
Application.commandbar(“标准”).FindControl(ID:=129)
.ListCount
(如果为0,则在出错时使用进行保护)
提前感谢您提供的任何线索。我也尝试了应用程序。OnUndo
,但它完全无法使用。它需要一个文本,终止堆栈和一个应用程序。过程中的Undo
将生成一个错误。无论如何,Application.OnRepeat
似乎不是Application.OnUndo
的对应项。它只对a作出反应,不显示文本(!)并阻止重做按钮和VBA重做(Application.CommandBars(“Standard”).FindControl(ID:=129)。在我使用的跟踪用户输入的访问中执行
)。在输入时,OnDirty
转到true
,在undo
时,OnDirty
转到false。我不知道Excel中是否存在这种情况。谢谢你的建议。不幸的是,它在Excel中不起作用,属性未知。