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

Вход

Регистрация

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

 

= Мир MS Excel/Переименование файлов при помощи цикла - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Переименование файлов при помощи цикла
Orishniy9361 Дата: Воскресенье, 26.12.2021, 10:02 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, уважаемые!

Продолжаю придумывать всякие фичи и столкнулся с очередной проблемой:

Есть цикл, который в моей программе делает определённые действия для каждой ячейки, начиная с А2 и заканчивая последней заполненной ячейкой.
По выполнении этих действий я решил создавать отдельный файл с выкопировкой результатов (две вкладки копируются в новую книгу), а затем с помощью того же цикла переименовывать эти файлы, также, начиная с ячейки А2 и заканчивая последней заполненной ячейкой.

Однако на этом этапе у меня всплывает ошибка '1004' Application-defined or object-defined error:
[vba]
Код
NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
[/vba]

Пробовал немного видоизменять эту строку, разбивая путь к книге и листу, там вылазила другая ошибка.

Не могли бы вы помочь правильно записать этот код, я находил подобный на других форумах и он работал у других людей, но в моём случае, что-то не выходит.
К сообщению приложен файл: 1699360.xlsm (47.6 Kb)


Сообщение отредактировал Orishniy9361 - Воскресенье, 26.12.2021, 10:52
 
Ответить
СообщениеДобрый день, уважаемые!

Продолжаю придумывать всякие фичи и столкнулся с очередной проблемой:

Есть цикл, который в моей программе делает определённые действия для каждой ячейки, начиная с А2 и заканчивая последней заполненной ячейкой.
По выполнении этих действий я решил создавать отдельный файл с выкопировкой результатов (две вкладки копируются в новую книгу), а затем с помощью того же цикла переименовывать эти файлы, также, начиная с ячейки А2 и заканчивая последней заполненной ячейкой.

Однако на этом этапе у меня всплывает ошибка '1004' Application-defined or object-defined error:
[vba]
Код
NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
[/vba]

Пробовал немного видоизменять эту строку, разбивая путь к книге и листу, там вылазила другая ошибка.

Не могли бы вы помочь правильно записать этот код, я находил подобный на других форумах и он работал у других людей, но в моём случае, что-то не выходит.

Автор - Orishniy9361
Дата добавления - 26.12.2021 в 10:02
RAN Дата: Воскресенье, 26.12.2021, 10:43 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А зачем все эти переименования?
[vba]
Код
'Переименование файлов

    NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
    Sheets(Array("Черн", "Нерж")).Copy
    ActiveWorkbook.SaveAs Filename:= _
        "D:\Users\Desktop\Наработки\" & NewName, FileFormat:= _
        xlExcel8, CreateBackup:=False
    ActiveWorkbook.Close

    Next i 'конец цикла
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА зачем все эти переименования?
[vba]
Код
'Переименование файлов

    NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
    Sheets(Array("Черн", "Нерж")).Copy
    ActiveWorkbook.SaveAs Filename:= _
        "D:\Users\Desktop\Наработки\" & NewName, FileFormat:= _
        xlExcel8, CreateBackup:=False
    ActiveWorkbook.Close

    Next i 'конец цикла
[/vba]

Автор - RAN
Дата добавления - 26.12.2021 в 10:43
Orishniy9361 Дата: Воскресенье, 26.12.2021, 10:54 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

А зачем все эти переименования?

В рабочем файле более 300 клейм и нужно на каждое клеймо иметь отдельный файл для дальнейшей рассылки
В ручную переименовывать столько файлов муторно.


Сообщение отредактировал Orishniy9361 - Воскресенье, 26.12.2021, 10:55
 
Ответить
Сообщение
А зачем все эти переименования?

В рабочем файле более 300 клейм и нужно на каждое клеймо иметь отдельный файл для дальнейшей рассылки
В ручную переименовывать столько файлов муторно.

Автор - Orishniy9361
Дата добавления - 26.12.2021 в 10:54
Orishniy9361 Дата: Воскресенье, 26.12.2021, 11:09 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

'Переименование файлов

[vba]
Код
NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
Sheets(Array("Черн", "Нерж")).Copy
ActiveWorkbook.SaveAs Filename:= _
"D:\Users\Desktop\Наработки\" & NewName, FileFormat:= _
xlExcel8, CreateBackup:=False
ActiveWorkbook.Close

Next i 'конец цикла
[/vba]


На вашем варианте возникает та же самая ошибка на строке
[vba]
Код
NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
[/vba]


Сообщение отредактировал Orishniy9361 - Воскресенье, 26.12.2021, 11:09
 
Ответить
Сообщение
'Переименование файлов

[vba]
Код
NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
Sheets(Array("Черн", "Нерж")).Copy
ActiveWorkbook.SaveAs Filename:= _
"D:\Users\Desktop\Наработки\" & NewName, FileFormat:= _
xlExcel8, CreateBackup:=False
ActiveWorkbook.Close

Next i 'конец цикла
[/vba]


На вашем варианте возникает та же самая ошибка на строке
[vba]
Код
NewName = Workbooks("Раскидка по подрядчикам.xlsm").Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
[/vba]

Автор - Orishniy9361
Дата добавления - 26.12.2021 в 11:09
RAN Дата: Воскресенье, 26.12.2021, 11:23 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
NewName = Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Воскресенье, 26.12.2021, 11:24
 
Ответить
Сообщение[vba]
Код
NewName = Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
[/vba]

Автор - RAN
Дата добавления - 26.12.2021 в 11:23
Orishniy9361 Дата: Воскресенье, 26.12.2021, 11:32 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

[vba]
Код
NewName = Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
[/vba]

Попробовал - та же ошибка выскакивает


Сообщение отредактировал Orishniy9361 - Воскресенье, 26.12.2021, 11:35
 
Ответить
Сообщение
[vba]
Код
NewName = Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
[/vba]

Попробовал - та же ошибка выскакивает

Автор - Orishniy9361
Дата добавления - 26.12.2021 в 11:32
bmv98rus Дата: Воскресенье, 26.12.2021, 13:14 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениекросс

Автор - bmv98rus
Дата добавления - 26.12.2021 в 13:14
_Igor_61 Дата: Воскресенье, 26.12.2021, 13:58 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Попробовал - та же ошибка выскакивает

Orishniy9361, это потому что много лишнего и не продуманного. И советую не применять "Kill" до тех пор, пока не освоите основы VBA - может плохо кончиться-на это само слово намекает :)
Пробуйте:
[vba]
Код
Sub Раскидка_Клейм_По_Файлам()
Dim NewName As String, LastRow As Long
    With Sheets("Клейма статистика")
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    For i = 2 To LastRow
        Sheets(Array("Черн", "Нерж")).Copy
        NewName = ThisWorkbook.Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
        ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & NewName
        ActiveWindow.Close
    Next i
  End With
End Sub
[/vba]
Файлы сохраняются в одной директории с рабочей книгой
P.S. Назавния листов надежней без пробелов


Сообщение отредактировал _Igor_61 - Воскресенье, 26.12.2021, 14:55
 
Ответить
Сообщение
Попробовал - та же ошибка выскакивает

Orishniy9361, это потому что много лишнего и не продуманного. И советую не применять "Kill" до тех пор, пока не освоите основы VBA - может плохо кончиться-на это само слово намекает :)
Пробуйте:
[vba]
Код
Sub Раскидка_Клейм_По_Файлам()
Dim NewName As String, LastRow As Long
    With Sheets("Клейма статистика")
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    For i = 2 To LastRow
        Sheets(Array("Черн", "Нерж")).Copy
        NewName = ThisWorkbook.Worksheets("Клейма статистика").Cells(i, 1) & ".xls"
        ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & NewName
        ActiveWindow.Close
    Next i
  End With
End Sub
[/vba]
Файлы сохраняются в одной директории с рабочей книгой
P.S. Назавния листов надежней без пробелов

Автор - _Igor_61
Дата добавления - 26.12.2021 в 13:58
Orishniy9361 Дата: Понедельник, 27.12.2021, 02:50 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Пробуйте:

Опробовал - работает! Вы в курсе, что вы делаете жизнь чуточку лучше своей помощью? Поставил плюс к вашей карме.

пока не освоите основы VB

Да я вот уже как год прошел два учебника скачал с основами - всё никак не могу сесть освоить, приходиться пользоваться готовыми решениями с интернета, когда возникает практическая потребность в определенном макросе, так как я не программист.


Сообщение отредактировал Orishniy9361 - Понедельник, 27.12.2021, 02:50
 
Ответить
Сообщение
Пробуйте:

Опробовал - работает! Вы в курсе, что вы делаете жизнь чуточку лучше своей помощью? Поставил плюс к вашей карме.

пока не освоите основы VB

Да я вот уже как год прошел два учебника скачал с основами - всё никак не могу сесть освоить, приходиться пользоваться готовыми решениями с интернета, когда возникает практическая потребность в определенном макросе, так как я не программист.

Автор - Orishniy9361
Дата добавления - 27.12.2021 в 02:50
  • Страница 1 из 1
  • 1
Поиск:

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