首先,我在谷歌搜索时找到了几个答案,但大部分论坛都在Office Network
被阻止,因此在这里提出这个问题!另一个目的是用简单的英语得到答案:P
我理解如果我们设置Application.CutCopyMode = False
那么复制/剪切结果将会消失(即内存将被清除)但我们应该何时使用它以及什么时候不使用它?有人可以帮忙吗?
答案 0 :(得分:33)
通过引用此(http://www.excelforum.com/excel-programming-vba-macros/867665-application-cutcopymode-false.html)链接,答案如下:
当您执行复制/剪切单元格和粘贴时,在宏录制器生成的代码中可以看到 Application.CutCopyMode=False
。宏录制器执行复制/剪切和粘贴在单独的语句中,并使用剪贴板作为中间缓冲区。我认为Application.CutCopyMode = False
会清除剪贴板。如果没有该行,当您使用剪贴板上的大量数据关闭工作簿时,您将收到警告' There is a large amount of information on the Clipboard....'
。
使用优化的VBA代码,您通常可以在一个语句中执行复制/剪切和粘贴操作,因此剪贴板不会被使用,并且不需要Application.CutCopyMode = False
而您不会获胜得到警告。
答案 1 :(得分:11)
通常情况下,当你复制一个单元格时,你会发现下面的语句写在状态栏中(在工作表的底部)
“选择目的地并按Enter或选择粘贴”
然后按是否输入或选择粘贴以粘贴单元格的值。
如果您之后没有按Esc,则可以多次粘贴单元格的值
Application.CutCopyMode = False 与Esc按钮相同,如果您从代码中删除它,您会发现您可以再次粘贴单元格值数次。
如果您在不按Esc的情况下关闭Excel 您将收到警告“剪贴板上有大量信息......”
答案 2 :(得分:1)
有一个很好的解释 https://stackoverflow.com/a/33833319/903783
根据xlCutCopyMode枚举(https://msdn.microsoft.com/en-us/VBA/Excel-VBA/articles/xlcutcopymode-enumeration-excel),期望的值似乎是xlCopy和xlCut,但是0值(这是VBA中False所等于的值)似乎对清除放置在剪贴板上的Excel数据很有用。