Excel检测PasteSpecial操作

我正在开发一个评估Excel上用户技能的软件。 因此,用户可以在Excel中做一些操作,正如一系列问题中所提到的,我的工作是使用Excel COM Object编程来validation用户所做的事情。
我能够validation这样的事情; 单元格格式,单元格方向,打印区域,字体types,合并单元格等,但我很努力validation“select性粘贴”操作。 我有一个WorkSheet的Change事件和WorkSheet本身的钩子。 所以我可以捕捉到用户所做的keyStroke以及单元格的实际格式。 但是我无法find一种方式来判断用户是否使用了“仅格式 – 特殊粘贴”。 有没有人可以帮助我呢?

您可以通过以下方式监视“撤消”列表来检测“粘贴特殊”事件:

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

没有必要检查实际的击键。

可悲的是,它没有提供什么types的特殊粘贴执行进一步的细节。 如果您知道范围(预定义的或通过Workbook_SheetChange事件中的Target ),则可以执行撤消操作( Application.Undo ),在粘贴之前存储单元格值,然后在目标上重新粘贴粘贴。 如果值已经改变,那么它不是“仅格式 – 特殊粘贴”。 希望这可以帮助。