Страница: 1 |
Вопрос: Изменение макроса | Добавлено: 16.07.07 15:48 |
Автор вопроса: ![]() |
В Excel-ом файле есть макрос, который разбивает данный файл на отдельные файлы (Сохраняет каждый лист, в отдельный файл).
Макрос выглядит так: Sub SaveSheets() Dim i As Integer For i = 1 To Sheets.Count Sheets(i).Select Sheets(i).Copy ActiveWorkbook.SaveAs Filename:="Book" & i & ".xls", FileFormat:=xlNormal ActiveWindow.Close Next End Sub Вопрос: Что здесь нужно исправить, чтобы при сохранении, название файлов было бы как у листов. А то у меня book1,book2,book3...? Заранее спасибо. |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ICQ: 237822510 Вопросов: 28 Ответов: 1182 |
Профиль | Цитата | #1 | Добавлено: 16.07.07 16:24 |
Ну видимо так. ActiveWorkbook.SaveAs Filename:=Sheets(i).Name & ".xls", FileFormat:=xlNormal
|
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 9 Ответов: 15 |
Профиль | Цитата | #2 | Добавлено: 17.07.07 10:16 |
Что-то не работает. Сохраняет только первые два листа файла. И после этого выдает ошибку Run-time error '9'. Subscript out range. Подскажите, ка исправить? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 9 Ответов: 15 |
Профиль | Цитата | #3 | Добавлено: 17.07.07 10:16 |
Что-то не работает. Сохраняет только первые два листа файла. И после этого выдает ошибку Run-time error '9'. Subscript out range. Подскажите, как исправить? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 454 |
Профиль | Цитата | #4 | Добавлено: 17.07.07 18:06 |
Dim i As Integer
For i = 1 To Sheets.Count Sheets(i).SaveAs Sheets(i).Name Next |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 9 Ответов: 15 |
Профиль | Цитата | #5 | Добавлено: 18.07.07 12:24 |
Да, теперь файл имеет название вкладки - это хорошо. Только теперь каждый файл имеет все вкладки. А мне нужно, чтобы и файл имел название вкладки и содержал в себе только свою вкладку. Надо подумать, как эти два скрипта собрать в один. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 82 |
Профиль | Цитата | #6 | Добавлено: 18.07.07 16:52 |
Попробуйте так
Sub SaveSheets()
Dim i As Integer Dim iSheetsAll%, iSheetName$, iPath$ Application.ScreenUpdating = False iSheetsAll = ActiveWorkbook.Sheets.Count iPath = "C:\Temp\" For i = 1 To iSheetsAll Sheets(i).Select Sheets(i).Copy iSheetName = ActiveSheet.Name ActiveWorkbook.SaveAs Filename:=iPath & iSheetName & ".xls", FileFormat:=xlNormal ActiveWindow.Close Next Application.ScreenUpdating = True MsgBox "Экспорт листов книги завершён!" & vbCrLf & "Файлы сохранены в папке: " & iPath, , "" End Sub |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 9 Ответов: 15 |
Профиль | Цитата | #7 | Добавлено: 18.07.07 17:50 |
Pavel, спасибо. Этот скрипт - супер! |
Страница: 1 |
|