Excel检测PasteSpecial操作

Excel Detect PasteSpecial operation

我正在开发一种软​​件,可以评估用户在 Excel 上的技能。 因此用户在 Excel 内进行了一些操作,如一系列问题中所问, 我的工作是使用 Excel COM 对象编写一些程序来验证用户所做的事情。
我能够验证类似的东西;单元格格式、单元格方向、打印区域、字体类型、合并单元格等。但我正在努力验证 "Paste Special" 操作。 我对 WorkSheet 的 Change 事件和 WorkSheet 本身很感兴趣。这样我就可以捕捉到用户执行的 keyStroke 操作以及单元格的实际格式。 但我无法找到一种方法来判断用户是否使用了 "Format Only - Special Paste"。有人可以帮我解决这个问题吗?

您可以通过监视撤消列表来检测 "Paste Special" 事件:

If Application.CommandBars("Standard").Controls("&Undo").List(1) = "Paste Special" Then

不需要检查实际击键。

遗憾的是,它没有提供任何有关执行何种类型的特殊粘贴的更多详细信息。如果您知道范围(预定义或通过 Workbook_SheetChange 事件中的 Target),您可以执行撤消操作 (Application.Undo),在粘贴之前存储单元格值,重做粘贴在目标。如果值已更改,则它不是 "Format Only - Special Paste"。希望这有帮助。