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

Вход

Регистрация

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

 

= Мир MS Excel/Сформировать два листа в одну книгу - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сформировать два листа в одну книгу (Макросы/Sub)
Сформировать два листа в одну книгу
tasdel Дата: Четверг, 23.12.2021, 18:51 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Здравствуйте уважаемые колдуны и шаманы!!!
Имеется макрос который создает новую книгу с активным листом worksheets(7). К отчетности добавился еше один лист worksheets(6)., теперь макрос должен создавать новую книгу с двумя листами. Решить эту задачу у меня не получается.

[vba]
Код
Sub СОХРАНИТЬ_КОПИЮ_ДОМ()

Da = MsgBox("Создать файл?", vbYesNo, "")
If Da = vbYes Then

   On Error Resume Next
    
    ' название подпапки, в которую по-умолчанию будет предложено сохранить файл
    Const REPORTS_FOLDER = "ГРАФИК ОПЕРАТОРОВ\"
    ' создаём папку для файла, если её ещё нет
    MkDir ThisWorkbook.Path & "\" & REPORTS_FOLDER
    ' выбираем стартовую папку
    ChDrive Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "\" & REPORTS_FOLDER
    
    ' вывод диалогового окна для запроса имени сохраняемого файла

    ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл
    If VarType(Filename) = vbBoolean Then Exit Sub
    ' добавляем расширение
    Filename = "ГРАФИК ОПЕРАТОРОВ " & Worksheets(1).Range("M7").Value & "xls." & "xls"
    
    ' копируем активный лист (при этом создаётся новая книга)
    Err.Clear: Worksheets(7).Copy: DoEvents
    If Err Then Exit Sub    ' произошла какая-то ошибка при попытке копирования листа
    
    ' убеждаемся, что активной книгой является копия листа
    If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then
        ' сохраняем файл под заданным именем в формате Excel 2003
        ActiveWorkbook.SaveAs Filename, xlWorkbookNormal
        
        ' закрываем сохранённый файл
        ' (удалите следующую строку, если закрывать созданный файл не требуется)
        ActiveWorkbook.Close False
    End If
   Worksheets(7).Protect Password:="1"
    End If

End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте уважаемые колдуны и шаманы!!!
Имеется макрос который создает новую книгу с активным листом worksheets(7). К отчетности добавился еше один лист worksheets(6)., теперь макрос должен создавать новую книгу с двумя листами. Решить эту задачу у меня не получается.

[vba]
Код
Sub СОХРАНИТЬ_КОПИЮ_ДОМ()

Da = MsgBox("Создать файл?", vbYesNo, "")
If Da = vbYes Then

   On Error Resume Next
    
    ' название подпапки, в которую по-умолчанию будет предложено сохранить файл
    Const REPORTS_FOLDER = "ГРАФИК ОПЕРАТОРОВ\"
    ' создаём папку для файла, если её ещё нет
    MkDir ThisWorkbook.Path & "\" & REPORTS_FOLDER
    ' выбираем стартовую папку
    ChDrive Left(ThisWorkbook.Path, 1): ChDir ThisWorkbook.Path & "\" & REPORTS_FOLDER
    
    ' вывод диалогового окна для запроса имени сохраняемого файла

    ' если пользователь отказался от выбора имени файла - отменяем сохранение листа в файл
    If VarType(Filename) = vbBoolean Then Exit Sub
    ' добавляем расширение
    Filename = "ГРАФИК ОПЕРАТОРОВ " & Worksheets(1).Range("M7").Value & "xls." & "xls"
    
    ' копируем активный лист (при этом создаётся новая книга)
    Err.Clear: Worksheets(7).Copy: DoEvents
    If Err Then Exit Sub    ' произошла какая-то ошибка при попытке копирования листа
    
    ' убеждаемся, что активной книгой является копия листа
    If ActiveWorkbook.Worksheets.Count = 1 And ActiveWorkbook.Path = "" Then
        ' сохраняем файл под заданным именем в формате Excel 2003
        ActiveWorkbook.SaveAs Filename, xlWorkbookNormal
        
        ' закрываем сохранённый файл
        ' (удалите следующую строку, если закрывать созданный файл не требуется)
        ActiveWorkbook.Close False
    End If
   Worksheets(7).Protect Password:="1"
    End If

End Sub
[/vba]

Автор - tasdel
Дата добавления - 23.12.2021 в 18:51
RAN Дата: Четверг, 23.12.2021, 22:30 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Err.Clear: Worksheets(Array(6, 7)).Copy: DoEvents
[/vba]
[vba]
Код
   ' убеждаемся, что активной книгой является копия листов     'а
    If ActiveWorkbook.Worksheets.Count = 2 And ActiveWorkbook.Path = "" Then
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Err.Clear: Worksheets(Array(6, 7)).Copy: DoEvents
[/vba]
[vba]
Код
   ' убеждаемся, что активной книгой является копия листов     'а
    If ActiveWorkbook.Worksheets.Count = 2 And ActiveWorkbook.Path = "" Then
[/vba]

Автор - RAN
Дата добавления - 23.12.2021 в 22:30
tasdel Дата: Четверг, 23.12.2021, 23:20 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
RAN, не работает сохраняется с одним листом №7
 
Ответить
СообщениеRAN, не работает сохраняется с одним листом №7

Автор - tasdel
Дата добавления - 23.12.2021 в 23:20
tasdel Дата: Пятница, 24.12.2021, 09:25 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 144
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
RAN, Все работает, Спасибо!!!
 
Ответить
СообщениеRAN, Все работает, Спасибо!!!

Автор - tasdel
Дата добавления - 24.12.2021 в 09:25
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сформировать два листа в одну книгу (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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