0
我正在編寫一個模塊,用於打開文件夾中的每個工作簿並從中複製一些信息。它可以在該文件夾中的大多數文件上順利運行,但當由模塊打開時,某些工作簿會顯示不同的名稱。我的代碼如下打開時重命名工作簿
Sub AutoUpdate()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets(1).Cells(1, 10).Value = Now()
'refreshes timestamp
Dim counter As Integer
Dim form
form = Dir("Macintosh HD:Users:user:Documents:Folder:")
'Finds first form in folder
counter = 1
Do Until form = ""
Workbooks.Open ("Macintosh HD:Users:user:Documents:Folder:" & form)
Workbooks("Inventory.xlsm").Sheets(2).Cells(counter, 1).Value = Workbooks(form).Sheets(1).Range("D3").Value
Workbooks("Inventory.xlsm").Sheets(2).Cells(counter, 2).Value = Workbooks(form).Sheets(1).Range("D5").Value
Workbooks("Inventory.xlsm").Sheets(2).Cells(counter, 3).Value = Workbooks(form).Sheets(1).Range("D1").Value
Workbooks("Inventory.xlsm").Sheets(2).Cells(counter, 4).Value = Workbooks(form).Sheets(1).Range("D2").Value
Workbooks("Inventory.xlsm").Sheets(2).Cells(counter, 5).Value = Workbooks(form).Sheets(1).Range("L69").Value
Workbooks("Inventory.xlsm").Sheets(2).Cells(counter, 6).Value = Workbooks(form).Sheets(1).Range("K36").Value
Workbooks("Inventory.xlsm").Sheets(2).Cells(counter, 7).Value = Workbooks(form).Sheets(1).Range("C37").Value
Workbooks(form).Close
counter = counter + 1
form = Dir
'cycles through all forms
Loop
Workbooks("Inventory.xlsm").Sheets(2).Range("A:G").Sort Key1:=Workbooks("Inventory.xlsm").Sheets(2).Range("A:A"), Order1:=xlAscending, Key2:=Workbooks("Inventory.xlsm").Sheets(1).Range("C:C"), Order2:=xlAscending, Orientation:=xlSortRows
Application.ScreenUpdating = True
Application.DisplayAlerts = False
End Sub
這拉動從所述第一工作簿45中的數據,然後返回「運行時錯誤9下標超出範圍」。打開的工作簿顯示名稱爲文件名稱,並附加兩個看似隨機的數字。當我手動打開文件時,名稱將作爲文件名讀取。
做了我回答解決你的問題?名稱中的隨機字符會使'Workbooks(form).Close'失敗。我還注意到,當你指定鍵時,你的'Sort'語句引用了2個不同的工作表。注意'表格(2)'和'表格(1)' – joehanna