通常,运行宏会清除撤消列表,无法撤消宏所执行的操作。并且,某些宏还会清除剪贴板,这会阻止复制和粘贴。假设希望Excel在每次所选区域变化时重新计算,在相应工作表模块中可能会有如下事件代码:Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
如果之前进行过复制操作,上述宏会清除剪贴板并停止粘贴。要处理这种情况,可以在运行Calculate(计算)命令之前检查剪贴板的状态。可以使用CutCopyMode设置来实现。如果将该属性值设置为零,则意味着剪贴板为空,就可以运行Calculate(计算)命令。Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = 0 Then Calculate
End Sub
这里讲的技巧唯一问题是当使用Ctrl+v或右键单击进行粘贴时,它们不会清除剪贴板,因此上述宏将不会运行,因为剪贴板上仍有内容。必须按Esc键清除剪贴板,然后宏将再次开始运行。当然,如果复制并按Enter键粘贴,则会自动清除剪贴板。注:本文学习整理自a4accounting.com.au,供参考。欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。