Если название листа одиноково во всех файлах то макрос работает. Как только идет изменение имени листо то все ошибка. Sub test() Dim P, F, S, A, PP, FIL, lr Dim Folder As String Dim workWb As Workbook Dim FSO As Object: Set FSO = CreateObject("Scripting.FileSystemObject") Set workWb = ActiveWorkbook 'Запоминаем активную книгу Range("A6:B10000").ClearContents Folder = ActiveWorkbook.path P = Folder: S = "TDSheet": A = [A2] 'Начинаем читать файлы из папки For Each FIL In FSO.GetFolder(P).Files If InStr(1, FIL.Name, ".xls", vbTextCompare) > 0 Then If InStr(1, FIL.Name, workWb.Name) = 0 Then PP = GetValue(P, FIL.Name, S, A) Debug.Print FIL.Name lr = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(lr, 1) = FIL.Name Cells(lr, 2) = P & PP & "\" & FIL.Name MakeDir P & "\" & PP Debug.Print P & PP & "\" & FIL.Name Name P & FIL.Name As P & PP & "\" & FIL.Name End If End If Next FIL MsgBox "OK", 64, "" End Sub
Как сделать обращение к названию листа не привязывая к конкретному имени [moder]1. Переделайте название темы 2. Пользуйтесь тегами для оформления - для макросов кнопка # 3. Почитайте Правила форума
Если название листа одиноково во всех файлах то макрос работает. Как только идет изменение имени листо то все ошибка. Sub test() Dim P, F, S, A, PP, FIL, lr Dim Folder As String Dim workWb As Workbook Dim FSO As Object: Set FSO = CreateObject("Scripting.FileSystemObject") Set workWb = ActiveWorkbook 'Запоминаем активную книгу Range("A6:B10000").ClearContents Folder = ActiveWorkbook.path P = Folder: S = "TDSheet": A = [A2] 'Начинаем читать файлы из папки For Each FIL In FSO.GetFolder(P).Files If InStr(1, FIL.Name, ".xls", vbTextCompare) > 0 Then If InStr(1, FIL.Name, workWb.Name) = 0 Then PP = GetValue(P, FIL.Name, S, A) Debug.Print FIL.Name lr = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(lr, 1) = FIL.Name Cells(lr, 2) = P & PP & "\" & FIL.Name MakeDir P & "\" & PP Debug.Print P & PP & "\" & FIL.Name Name P & FIL.Name As P & PP & "\" & FIL.Name End If End If Next FIL MsgBox "OK", 64, "" End Sub
Как сделать обращение к названию листа не привязывая к конкретному имени [moder]1. Переделайте название темы 2. Пользуйтесь тегами для оформления - для макросов кнопка # 3. Почитайте Правила форумаtumbinskiy
Ну как же не использует, когда этой никому не известно как написанной процедуре GetValue при вызове передаётся аргумент S = "TDSheet" ? Можно, вообще-то и тупо не глядя обработчик ошибок включить, но лучше, конечно, файл со всеми процедурами посмотреть.
Ну как же не использует, когда этой никому не известно как написанной процедуре GetValue при вызове передаётся аргумент S = "TDSheet" ? Можно, вообще-то и тупо не глядя обработчик ошибок включить, но лучше, конечно, файл со всеми процедурами посмотреть.Alex_ST