【问题标题】: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

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

【问题讨论】:

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

标签: vba excel


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2020-09-01
    • 2012-10-26
    • 1970-01-01
    • 2012-02-09
    相关资源
    最近更新 更多