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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос , деление вкладок - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Макрос , деление вкладок (Формулы/Formulas)
Макрос , деление вкладок
semen-borovikov1999 Дата: Вторник, 09.01.2024, 13:03 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

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

[vba]
Код
Sub Разбивка()
' Макрос создаёт новые книги с содержимом исходной (активной) книги и сохраняет их по названиям листов в изначальной (активной) книге
'' Количество новых книг = количеству листов в изначальной (активной) книге и является переменной величиной
''' Изначальная (активная) книга должна быть сохранена хотя бы раз
'''' Новые книги сохраняются по тому же пути, где и расположен исходный файл

Application.ScreenUpdating = False

Dim ws As Worksheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim sPath

For Each ws In wb.Worksheets
sPath = wb.path & "\" & ws.name
If Dir$(sPath, vbDirectory) = "" Then MkDir (sPath)
ws.Copy
With ActiveWorkbook
.SaveAs sPath & "\" & ws.name & ".xlsx", 51
.Close
End With
Next

End Sub
[/vba]
 
Ответить
СообщениеКоллеги, добрый день , использую макрос , чтобы сохранять каждую вкладку как отдельный файл и в отдельной папке с сохранением названия, но есть такая проблема, если я использую другой файл , а там есть такая же вкладка с таким же названием, то нельзя сохранить это, ибо выскакивает ошибка , ну знаете стандартная, заменить ли файл с таким же названием, так вот, хочу как то подправить макрос так, чтобы когда был файл с идентичным названием в данной папке, он просто добавлял к названию например цифру (1) или (2), например есть в папке уже папка с названием TKRU12345 , и вот я делю эксель файл и там есть вкладка с таким же номером, и хочу чтобы макрос сохранял файл в данной папке, но не заменяя существующую, например вставлял в название TKRU12345 (1) , затем TKRU12345(2) и тд. Ниже прикреплю макрос который использую, для разделения вкладок в файле на каждый отдельный файл с созданием папки. Если я как то плохо обьяснил , вот еще раз, у меня есть два файла , в нем вкладки, макрос сохраняет каждую вкладку как отдельный файл, с сохранением названия вклакди, а так же создает для каждой вкладки папку, с таким же названием, и вот мне нужно, чтобы когда я начинал делить второй файл, где такие же названия, нужно его делить в эту же папку, но там уже существуют названия, и хочу чтобы он просто добавлял цифру к существующему, ниже макрос , который я использую, плиз ХЕЛП

[vba]
Код
Sub Разбивка()
' Макрос создаёт новые книги с содержимом исходной (активной) книги и сохраняет их по названиям листов в изначальной (активной) книге
'' Количество новых книг = количеству листов в изначальной (активной) книге и является переменной величиной
''' Изначальная (активная) книга должна быть сохранена хотя бы раз
'''' Новые книги сохраняются по тому же пути, где и расположен исходный файл

Application.ScreenUpdating = False

Dim ws As Worksheet
Dim wb As Workbook
Set wb = ActiveWorkbook
Dim sPath

For Each ws In wb.Worksheets
sPath = wb.path & "\" & ws.name
If Dir$(sPath, vbDirectory) = "" Then MkDir (sPath)
ws.Copy
With ActiveWorkbook
.SaveAs sPath & "\" & ws.name & ".xlsx", 51
.Close
End With
Next

End Sub
[/vba]

Автор - semen-borovikov1999
Дата добавления - 09.01.2024 в 13:03
Alex_ST Дата: Среда, 10.01.2024, 08:26 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3197
Репутация: 606 ±
Замечаний: 0% ±

2003
Просто нужно к имени сохраняемого файла (имени листа) добавлять дату сохранения с точностью до секунды. Вряд ли Вы будете сохранять чаще, чем 1 раз в секунду, но в принципе можно и с большей точностью.
Тогда и разобрать по "возрасту" сохранённые файлы будет проще.
Ну и после того, как Вы отключили обновление экрана, лучше на всякий случай его всё-таки включать после выполнения операций.
При корректном завершении процедуры оно включится само, а если по выходу в отладчик, то могут возникнуть неприятные эффекты.
Не проверял, но примерно так:



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 10.01.2024, 09:05
 
Ответить
СообщениеПросто нужно к имени сохраняемого файла (имени листа) добавлять дату сохранения с точностью до секунды. Вряд ли Вы будете сохранять чаще, чем 1 раз в секунду, но в принципе можно и с большей точностью.
Тогда и разобрать по "возрасту" сохранённые файлы будет проще.
Ну и после того, как Вы отключили обновление экрана, лучше на всякий случай его всё-таки включать после выполнения операций.
При корректном завершении процедуры оно включится само, а если по выходу в отладчик, то могут возникнуть неприятные эффекты.
Не проверял, но примерно так:

Автор - Alex_ST
Дата добавления - 10.01.2024 в 08:26
semen-borovikov1999 Дата: Пятница, 26.01.2024, 16:37 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

любая
Алексей,

Подскажите пожалуйста, всё работало , но теперь выдает такую ошибку , во вложении
К сообщению приложен файл: 1206101.jpg (36.0 Kb)
 
Ответить
СообщениеАлексей,

Подскажите пожалуйста, всё работало , но теперь выдает такую ошибку , во вложении

Автор - semen-borovikov1999
Дата добавления - 26.01.2024 в 16:37
semen-borovikov1999 Дата: Пятница, 26.01.2024, 16:41 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

любая
Нашел проблему, оказывается файл находился в сжатой папке
 
Ответить
СообщениеНашел проблему, оказывается файл находился в сжатой папке

Автор - semen-borovikov1999
Дата добавления - 26.01.2024 в 16:41
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Макрос , деление вкладок (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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