是否可以在不打開工作表的情況下複製工作表並將其粘貼到已打開的工作簿而沒有默認文件位置?我試圖複製的工作表總共包含30個工作表。我曾嘗試使用文件對話框打開,但有時它會掛起excel。有什麼辦法可以避免出類拔萃,做我想做的事嗎?先謝謝你。將工作表從一個工作簿(未打開)複製到已打開的工作簿
Dim FileToOpen As String
Application.ScreenUpdating = False
FileToOpen = Application.GetOpenFilename _
(Title:="Please choose a Excel File to Open", _
FileFilter:="Excel Files *.(*.xlsx),xlsx")
If VarType(FileToOpen) = vbBoolean Then
MsgBox "No file selected", vbExclamation, "Sorry!"
Exit Sub
End If
Debug.Assert VarType(FileToOpen) = vbString
With Application.Workbooks.Open(FileToOpen)
.Worksheets(22).UsedRange.Copy ThisWorkbook.Worksheets(2).range("A1")
.Close
End With
原則是什麼,它是不可能的,而無需打開它從一個數字文件訪問任何東西。但是,可以打開它,以便用戶永遠不會意識到打開,複製和關閉了某些內容。如果您知道您希望訪問的文件的確切位置,您可以在不受用戶干擾的情況下打開代碼。否則,如果您不知道位置或名稱,則FileOpen對話框即將推出。你爲什麼不發佈你的代碼,並讓我們看看爲什麼你的Excel的crsashes? – Variatus
嗨我編輯和添加代碼如上 –
所以,你說Excel只是掛起。沒有錯誤信息?沒有調試亮點?也許這只是Windows對於Excel來說太快了,在複製完成之前關閉文件。在這種情況下,在關閉源文件之前嘗試做一些事情,可能是'ThisWorkbook.Activate'。嘗試命名源工作簿和目標工作簿。同時命名源和目標工作表 - 所有這些都不是絕對必要的,但適合讓VBA知道誰是老闆。 – Variatus