0
感謝您閱讀我的問題。我試圖將很多文件導入到一個工作簿中。VBA將其他電子表格合併爲一個
此部分腳本在第一個工作簿中工作一次,但在第二個工作簿中碰到第三個工作簿時崩潰。
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
Set tmpWb = ActiveWorkbook
For Each Sheet In tmpWb.Sheets
Range("A2").Select
If Range("A2").Value <> "" Then
sFileName = tmpWb.Name
sFileName = Replace(sFileName, ".xlsx", "")
Sheet.Name = sFileName
wbNew.Activate
Sheet.Copy After:=wbNew.Sheets(1)
Else
'do nothing
End If
tmpWb.Activate
On Error GoTo LastSheet
Worksheets(ActiveSheet.Index + 1).Select
LastSheet:
Next Sheet
Workbooks(Filename).Close
Filename = dir()
Loop
它的崩潰在工作表(ActiveSheet.Index + 1)。選擇 與此錯誤 運行時錯誤9下標越界
我猜這是因爲當你的活動工作表是最後的紙張,T如果沒有'ActiveSheet.Index + 1'來引用。 –
這裏有大量的錯誤。例如,你沒有明確地設置活動工作表的任何地方(只有活動工作簿),所以命令如「Range(」A2「).Select」幾乎是一個廢話。 – RBarryYoung
範圍上的好點,我在第一個範圍(「A2」)之前添加了tmpWb.ActiveSheet以確保它被選中。 –