Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Работа с максром - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Работа с максром
tumbinskiy Дата: Пятница, 06.06.2014, 11:13 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Если название листа одиноково во всех файлах то макрос работает. Как только идет изменение имени листо то все ошибка.
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
Дата добавления - 06.06.2014 в 11:13
RAN Дата: Пятница, 06.06.2014, 11:23 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Этот макрос вообще не использует названия листа.
Собака порылась тут
[vba]
Код
GetValue(P, FIL.Name, S, A)
[/vba]
 
Ответить
СообщениеЭтот макрос вообще не использует названия листа.
Собака порылась тут
[vba]
Код
GetValue(P, FIL.Name, S, A)
[/vba]

Автор - RAN
Дата добавления - 06.06.2014 в 11:23
tumbinskiy Дата: Пятница, 06.06.2014, 11:26 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
А что надо сделать что бы использовалось
 
Ответить
СообщениеА что надо сделать что бы использовалось

Автор - tumbinskiy
Дата добавления - 06.06.2014 в 11:26
Hugo Дата: Пятница, 06.06.2014, 12:16 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Что надо сделать - модератор выше написал!
 
Ответить
СообщениеЧто надо сделать - модератор выше написал!

Автор - Hugo
Дата добавления - 06.06.2014 в 12:16
Alex_ST Дата: Пятница, 06.06.2014, 13:48 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Этот макрос вообще не использует названия листа
Ну как же не использует, когда этой никому не известно как написанной процедуре GetValue при вызове передаётся аргумент S = "TDSheet" ?
Можно, вообще-то и тупо не глядя обработчик ошибок включить, но лучше, конечно, файл со всеми процедурами посмотреть.
 
Ответить
Сообщение
Этот макрос вообще не использует названия листа
Ну как же не использует, когда этой никому не известно как написанной процедуре GetValue при вызове передаётся аргумент S = "TDSheet" ?
Можно, вообще-то и тупо не глядя обработчик ошибок включить, но лучше, конечно, файл со всеми процедурами посмотреть.

Автор - Alex_ST
Дата добавления - 06.06.2014 в 13:48
RAN Дата: Пятница, 06.06.2014, 15:00 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Ну ты и глазастый!
Я не увидел.
 
Ответить
СообщениеНу ты и глазастый!
Я не увидел.

Автор - RAN
Дата добавления - 06.06.2014 в 15:00
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!