0
我已經有了一個宏,它可以在特定文件夾中的新工作簿中保存三個特定工作表。每次我需要保存大約20-30個工作簿。但是,我可以看到每次調用宏時,在任務行中生成了一個新的工作簿,並且在一些新的工作簿之後(到目前爲止它就像1500+一樣),將創建一個新的工作簿並在此之後關閉等等。整件事情花費太多時間。如果我必須一次生成20個新的工作簿,則需要30秒或更長的時間。有什麼辦法可以讓它更快?高效地將工作表保存在新工作簿中
Sheets(Array("Statement", "Current Run", "Stock")).Copy
ActiveWorkbook.SaveAs Filename:="C:\solved\" & st & ".xlsx", Password:="",
WriteResPassword:="", ReadOnlyRecommended:=False
//Just adding some row before closing
finalLine.Copy
ActiveWorkbook.Sheets("Current Run").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial
ActiveWorkbook.Sheets("Current Run").Range("A2").CurrentRegion.Borders.LineStyle = xlContinuous
ActiveWorkbook.Close SaveChanges:=True
您正在保存每個工作簿兩次。將'SaveAs'移到'Close'之前應該有所幫助。然後你可以修改最後一行的SaveChange參數爲False。除此之外,你的問題很混亂。我不明白是否是20-30或1500個工作簿。我不明白「在任務欄中生成了一個新的工作簿。」 –
好。在任務管理器行中會出現一個名爲「book 1500」的新工作簿,然後該名稱將更改爲相關的名稱,例如「Run15」,然後從任務管理器中消失。然後下一個工作簿出現在任務管理器的名稱「book 1501」下,然後重命名並關閉,等等。 – george
這就是我期望看到的。您正在創建和保存工作簿,這就是您所看到的。通過「任務管理器」,我想你是指通常在VBE左側出現的窗格。你有沒有嘗試我的建議?另外,我認爲在代碼的開始和結束處切換'Application.ScreenUpdating'會有所幫助。 –