Страница: 1 |
Страница: 1 |
Вопрос: Изменение макроса
Добавлено: 16.07.07 15:48
Автор вопроса: bukmax
В 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
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #1
Добавлено: 16.07.07 16:24
Ну видимо так.
Номер ответа: 2
Автор ответа:
bukmax
Вопросов: 9
Ответов: 15
Профиль | | #2
Добавлено: 17.07.07 10:16
Что-то не работает. Сохраняет только первые два листа файла. И после этого выдает ошибку Run-time error '9'. Subscript out range. Подскажите, ка исправить?
Номер ответа: 3
Автор ответа:
bukmax
Вопросов: 9
Ответов: 15
Профиль | | #3
Добавлено: 17.07.07 10:16
Что-то не работает. Сохраняет только первые два листа файла. И после этого выдает ошибку Run-time error '9'. Subscript out range. Подскажите, как исправить?
Номер ответа: 4
Автор ответа:
EUGY
Вопросов: 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
Автор ответа:
bukmax
Вопросов: 9
Ответов: 15
Профиль | | #5
Добавлено: 18.07.07 12:24
Да, теперь файл имеет название вкладки - это хорошо. Только теперь каждый файл имеет все вкладки. А мне нужно, чтобы и файл имел название вкладки и содержал в себе только свою вкладку. Надо подумать, как эти два скрипта собрать в один.
Номер ответа: 6
Автор ответа:
Pavel
Вопросов: 0
Ответов: 82
Профиль | | #6
Добавлено: 18.07.07 16:52
Попробуйте так
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
Автор ответа:
bukmax
Вопросов: 9
Ответов: 15
Профиль | | #7
Добавлено: 18.07.07 17:50
Pavel, спасибо. Этот скрипт - супер!