Я пишу модуль, который открывает каждую книгу в папке и копирует с нее некоторую информацию. Он работает гладко на большинстве файлов в папке, но некоторые книги появляются с разными именами при открытии модуля. Мой код выглядит следующим образомПереименование книги при открытии
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 индекса вне диапазона.» Открывается рабочая книга с именем, считающимся именем файла с двумя, казалось бы, случайными цифрами. Когда я вручную открываю файл, имя читается как имя файла.
делись мои ответ решить вашу проблему? Случайные символы в названии сделают «Рабочие книги (форму). Закрытие« сбой ». Я также заметил, что ваш оператор 'Sort' ссылается на 2 разных листа, когда вы указываете ключи. Заметьте 'Таблицы (2)' и 'Таблицы (1)' – joehanna