Excel检测粘贴特殊操作
问题描述:
我正在研究评估用户在Excel上的技能的软件。 因此,用户可以在Excel中执行一些操作,正如一系列问题 中提到的那样,我的工作是使用Excel COM Object对某些内容进行编程以验证用户已完成的操作。
我可以验证的东西,如;单元格格式,单元格方向,打印区域,字体类型,合并单元格等。但我正在努力验证“粘贴特殊”操作。 我有一个WorkSheet的Change事件和WorkSheet本身的钩子。所以我可以捕捉到用户所做的keyStroke以及单元格的实际格式。 但我无法找到一种方式来判断用户是否使用了“仅格式 - 特殊粘贴”。有没有人可以帮助我呢?Excel检测粘贴特殊操作
答
您可以通过监控撤消列表检测“选择性粘贴”事件:
If Application.CommandBars("Standard").Controls("&Undo").List(1) = "Paste Special" Then
不需要检查的实际按键。
可悲的是,它没有提供什么类型的粘贴特殊执行的任何进一步的细节。如果知道范围(预定义或通过Workbook_SheetChange
事件中的Target
),则可以执行撤消操作(Application.Undo
),在粘贴之前存储单元格值,然后在目标上重新粘贴粘贴。如果值已更改,则不是“仅格式 - 特殊粘贴”。希望这可以帮助。
如果你能赶上“记录宏”,你可以写一个日志文件....但这只是一个想法,我不知道是否以及如何可能... –