关闭文件时无法抑制剪贴板警告消息

Posted

技术标签:

【中文标题】关闭文件时无法抑制剪贴板警告消息【英文标题】:Unable to suppress clipboard warning message when closing a file 【发布时间】:2016-06-20 16:50:52 【问题描述】:

我有一个宏,它打开一个工作簿 (wb1) 并将其复制到另一个工作簿 (wb2),然后关闭 wb1。但是,我总是提示下面的消息,即有大量剪贴板数据我不想被提示。在做了一些研究后,我发现将“Application.CutCopyMode”设置为 false(这会清除剪贴板)可以解决这个问题,但它没有。

Application.CutCopyMode = False
...

'copy the range from source book
 wb1.Worksheets("Sheet1").Range("A1:V2").Copy
 'paste the data on the target book
 wb2.Worksheets("Sheet1").Range("A1:V2").PasteSpecial

wb.Close savechanges:=False

如果没有此消息,我如何关闭文件?

【问题讨论】:

您可能希望查看以下内容:***.com/a/22328170/1153513 请注意,您必须清除原始工作簿的剪贴板。所以,它应该在你的例子中wb1.Application.CutCopyMode = False 【参考方案1】:

如果您想禁止显示任何消息,请在关闭文件之前添加以下内容:

Application.DisplayAlerts = False

如果要清除剪贴板内容,应在执行复制/粘贴操作后添加Application.CutCopyMode = False。像这样:

...

'copy the range from source book
wb1.Worksheets("Sheet1").Range("A1:V2").Copy
'paste the data on the target book
wb2.Worksheets("Sheet1").Range("A1:V2").PasteSpecial

Application.CutCopyMode = False

wb.Close savechanges:=False

【讨论】:

但是如果出现其他重要警报怎么办? 啊,好吧...您只想取消该警告。在这种情况下,您应该在执行复制/粘贴操作后使用Application.CutCopyMode = False,并且可以删除Application.DisplayAlerts = FALSE 语句。我会更新我的答案【参考方案2】:

您想要做的特殊粘贴到底是什么?如果您只想复制值,则无需复制和粘贴,只需直接分配值即可:

wb2.Worksheets("Sheet1").Range("A1:V2").value = wb1.Worksheets("Sheet1").Range("A1:V2").value

【讨论】:

以上是关于关闭文件时无法抑制剪贴板警告消息的主要内容,如果未能解决你的问题,请参考以下文章

在Powerpoint中插入Excel内容。错误消息:剪贴板为空或包含可能无法粘贴在此处的数据

autoit中如何把指定内容复制到剪贴板?

如何在 PyQt 应用程序退出时禁用清除剪贴板?

清除剪贴板以禁止未经授权的复制,插入消息?

在 Perl 中抑制无法定位模块警告

关闭的 Windows 通用应用程序的剪贴板内容