我有一個巨集,它將 4 張工作表從一個工作簿複製到一個新工作簿,並用另一個名稱儲存。
不幸的是,訊息框詢問我是否願意希望將大量數據可供其他應用程式使用導致這項自動化工作變得稍微手動。
任何有關如何避免剪貼簿訊息框或讓它自動回答「否」的提示,我們將不勝感激。
答案1
我會修改巨集。巨集啟動時關閉警報,巨集完成後重新開啟警報。 IE Application.DisplayAlerts = False
答案2
問題Application.DisplayAlerts = False
是它可能會隱藏您需要查看的警報。
Application.CutCopyMode = False
在貼上後使用,這會從剪貼簿中刪除指向大範圍的連結。
答案3
我同意 Jon Peltier 的觀點,“問題在於Application.DisplayAlerts = False
它可能隱藏了您需要查看的警報。”另外,您必須記住Application.DisplayAlerts = True
在完成後進行設置,因此每次貼上需要 3 行程式碼,如果您的程式在此之前中斷,Application.DisplayAlerts = True
您將在不知不覺中關閉警報,直到退出 Excel。
Application.CutCopyMode = False
貼後我測試了他的建議,效果很好。這是一個例子someSpreadsheet.xls
:
Workbooks.OpenText Filename:="someDirectory\someFile.txt", _
DataType:=xlDelimited, TextQualifier:=xlNone, _
Tab:=True
Cells.Select
Selection.Copy
Windows("someSpreadsheet.xls").Activate
ActiveSheet.Paste
Application.CutCopyMode = 0
Windows("someFile.txt").Activate
ActiveWorkbook.Close
答案4
我找到了關於此的 MS 文件。看來您可以在巨集中使用一些不同的程式解決方案來解決此問題。這僅取決於您要複製到剪貼簿的具體內容。知識庫#287392
這是相關部分:
方法 2:退出 CutCopyMode
如果您使用 Visual Basic for Applications 巨集來剪下或複製儲存格,請在關閉工作簿的行之前插入下列行
workbook.Application.CutCopyMode = False
其中“workbook”是您的工作簿物件。
注意:透過將 CutCopyMode 設為 True 或 False,Excel 可能會取消剪下或複製模式。
方法 3:儲存工作簿
如果您使用 Visual Basic for Applications 巨集來剪下或複製儲存格,請在關閉工作簿的行之前插入下列行
workbook.Save
其中“workbook”是您的工作簿物件。儲存工作簿時,Excel 不再處於剪下或複製模式。