Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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
Ну видимо так.
ActiveWorkbook.SaveAs Filename:=Sheets(i).Name & ".xls", FileFormat:=xlNormal

Ответить

Номер ответа: 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
Попробуйте так

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
Автор ответа:
 bukmax



Вопросов: 9
Ответов: 15
 Профиль | | #7 Добавлено: 18.07.07 17:50
Pavel, спасибо. Этот скрипт - супер!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам