我有一个Excel工作簿,它使用VBA代码打开另一个工作簿,将一些数据复制到原始工作簿中,然后关闭第二个工作簿。

当关闭第二个工作簿(使用Application.Close)时,提示您:


是否要保存剪贴板。


VBA中是否有一条命令将绕过此提示?

最佳答案

我可以提供两种选择


直接复制


根据您的描述,我猜您正在做类似的事情

Set wb2 = Application.Workbooks.Open("YourFile.xls")
wb2.Sheets("YourSheet").[<YourRange>].Copy
ThisWorkbook.Sheets("SomeSheet").Paste
wb2.close


在这种情况下,您无需通过剪贴板进行复制。此方法直接从源复制到目标。剪贴板中没有数据=没有提示

Set wb2 = Application.Workbooks.Open("YourFile.xls")
wb2.Sheets("YourSheet").[<YourRange>].Copy ThisWorkbook.Sheets("SomeSheet").Cells(<YourCell")
wb2.close



禁止提示


您可以通过设置来阻止所有警报弹出窗口

Application.DisplayAlerts = False




[编辑]


仅复制值:完全不使用复制/粘贴




Dim rSrc As Range
Dim rDst As Range
Set rSrc = wb2.Sheets("YourSheet").Range("YourRange")
Set rDst = ThisWorkbook.Sheets("SomeSheet").Cells("YourCell").Resize(rSrc.Rows.Count, rSrc.Columns.Count)
rDst = rSrc.Value

10-08 18:36