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

Вход

Регистрация

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

 

= Мир MS Excel/Экспорт в PDF, исключая скрытые листы - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Экспорт в PDF, исключая скрытые листы (Макросы/Sub)
Экспорт в PDF, исключая скрытые листы
pips Дата: Суббота, 11.08.2018, 10:54 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброе утро!
Есть код, сохраняющий отчет из нескольких листов в формате pdf.
[vba]
Код

Private Sub CommandButton1_Click()
    Sheets(Evaluate("TRANSPOSE(ROW(" & _
    Sheets("Титульный").Index & ":" & Sheets("Лицензия").Index & "))")).Select 'выбираем нужные листы
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        Worksheets("Service").Range("B1") & "\" & Worksheets("Титульный").Range("AA20") & "_" & Replace_symbols(Worksheets("Титульный").Range("M29")) & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
        'функция Replace Symbols заменяет запрщенные в названии символы
        MsgBox "Файл сохранен в формате PDF"
End Sub
[/vba]

Если из отчета скрыть лист, выскакивает ошибка "Run Time Error 1004: Метод Select из класса Sheets завершен неверно".
Можно ли исправить код, чтобы экспорт производился без ошибки, исключая скрытые листы?
Спасибо!
 
Ответить
СообщениеДоброе утро!
Есть код, сохраняющий отчет из нескольких листов в формате pdf.
[vba]
Код

Private Sub CommandButton1_Click()
    Sheets(Evaluate("TRANSPOSE(ROW(" & _
    Sheets("Титульный").Index & ":" & Sheets("Лицензия").Index & "))")).Select 'выбираем нужные листы
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        Worksheets("Service").Range("B1") & "\" & Worksheets("Титульный").Range("AA20") & "_" & Replace_symbols(Worksheets("Титульный").Range("M29")) & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
        'функция Replace Symbols заменяет запрщенные в названии символы
        MsgBox "Файл сохранен в формате PDF"
End Sub
[/vba]

Если из отчета скрыть лист, выскакивает ошибка "Run Time Error 1004: Метод Select из класса Sheets завершен неверно".
Можно ли исправить код, чтобы экспорт производился без ошибки, исключая скрытые листы?
Спасибо!

Автор - pips
Дата добавления - 11.08.2018 в 10:54
RAN Дата: Суббота, 11.08.2018, 12:09 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4890
Репутация: 974 ±
Замечаний: 0% ±

2010
[vba]
Код
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        Worksheets("Service").Range("B1") & "\" & Worksheets("Титульный").Range("AA20") & "_" & Replace_symbols(Worksheets("Титульный").Range("M29")) & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
[/vba]
Мяу?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        Worksheets("Service").Range("B1") & "\" & Worksheets("Титульный").Range("AA20") & "_" & Replace_symbols(Worksheets("Титульный").Range("M29")) & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True
[/vba]
Мяу?

Автор - RAN
Дата добавления - 11.08.2018 в 12:09
pips Дата: Суббота, 11.08.2018, 12:43 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
:D Почти. Возможно, не так описал ситуацию.
Есть 15 листов. Нужно выделить с 5 по 15 лист и отправить в экспорт, при этом, иногда приходится скрывать листы в промежутке с 6 по 14-й.
В принципе, Ваш вариант подойдет, если скрыть первые 5 листов, но их пока хотелось бы держать в быстром доступе...


Сообщение отредактировал pips - Суббота, 11.08.2018, 12:47
 
Ответить
Сообщение:D Почти. Возможно, не так описал ситуацию.
Есть 15 листов. Нужно выделить с 5 по 15 лист и отправить в экспорт, при этом, иногда приходится скрывать листы в промежутке с 6 по 14-й.
В принципе, Ваш вариант подойдет, если скрыть первые 5 листов, но их пока хотелось бы держать в быстром доступе...

Автор - pips
Дата добавления - 11.08.2018 в 12:43
RAN Дата: Суббота, 11.08.2018, 13:39 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4890
Репутация: 974 ±
Замечаний: 0% ±

2010
Зачем спрашивать, как сохранить, если вы просто выделить не можете?
[vba]
Код
Sheets(Array("Лист1", "Лист2")).Select
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЗачем спрашивать, как сохранить, если вы просто выделить не можете?
[vba]
Код
Sheets(Array("Лист1", "Лист2")).Select
[/vba]

Автор - RAN
Дата добавления - 11.08.2018 в 13:39
pips Дата: Суббота, 11.08.2018, 13:56 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Зачем спрашивать, как сохранить, если вы просто выделить не можете?


И так каждый раз код переписывать?) Спасибо, пока воспользуюсь Вашим первым вариантом, потом форму с выбором сделаю.
 
Ответить
Сообщение
Зачем спрашивать, как сохранить, если вы просто выделить не можете?


И так каждый раз код переписывать?) Спасибо, пока воспользуюсь Вашим первым вариантом, потом форму с выбором сделаю.

Автор - pips
Дата добавления - 11.08.2018 в 13:56
RAN Дата: Суббота, 11.08.2018, 14:34 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4890
Репутация: 974 ±
Замечаний: 0% ±

2010
И так каждый раз код переписывать?)

Зачем?
вполне достаточно написать это
Sheets(Evaluate("TRANSPOSE(ROW(" & _
    Sheets("Титульный").Index & ":" & Sheets("Лицензия").Index & "))")).Select 'выбираем нужные листы

НЕ кисточкой хвоста.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
И так каждый раз код переписывать?)

Зачем?
вполне достаточно написать это
Sheets(Evaluate("TRANSPOSE(ROW(" & _
    Sheets("Титульный").Index & ":" & Sheets("Лицензия").Index & "))")).Select 'выбираем нужные листы

НЕ кисточкой хвоста.

Автор - RAN
Дата добавления - 11.08.2018 в 14:34
pips Дата: Суббота, 11.08.2018, 16:18 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
НЕ кисточкой хвоста.

Шутку про кисточку хвоста понял не сразу, но оценил.
А вот кривой код переписать пока опыта не хватает.
 
Ответить
Сообщение
НЕ кисточкой хвоста.

Шутку про кисточку хвоста понял не сразу, но оценил.
А вот кривой код переписать пока опыта не хватает.

Автор - pips
Дата добавления - 11.08.2018 в 16:18
RAN Дата: Суббота, 11.08.2018, 18:54 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4890
Репутация: 974 ±
Замечаний: 0% ±

2010
Для того, чтобы вам помочь, нужно, как минимум, знать, попытка выполнения каких действий породила эту дикую запись.
Ни файла, ни пояснений... Поможите чем можите.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеДля того, чтобы вам помочь, нужно, как минимум, знать, попытка выполнения каких действий породила эту дикую запись.
Ни файла, ни пояснений... Поможите чем можите.

Автор - RAN
Дата добавления - 11.08.2018 в 18:54
pips Дата: Суббота, 11.08.2018, 19:19 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Ни файла, ни пояснений...

Код нашел в интернете и переделал как мог под себя.
Приложил файл. При нажатии кнопки нужные листы сохраняются в PDF.
Если скрыть "Лист3", то выскакивает ошибка. Как проигнорировать скрытый лист и сохранить только видимые листы в промежутке между листом 2 и листом 4? (Листы скрываются только в этом промежутке)
К сообщению приложен файл: 5397743.xlsm(21.0 Kb)
 
Ответить
Сообщение
Ни файла, ни пояснений...

Код нашел в интернете и переделал как мог под себя.
Приложил файл. При нажатии кнопки нужные листы сохраняются в PDF.
Если скрыть "Лист3", то выскакивает ошибка. Как проигнорировать скрытый лист и сохранить только видимые листы в промежутке между листом 2 и листом 4? (Листы скрываются только в этом промежутке)

Автор - pips
Дата добавления - 11.08.2018 в 19:19
RAN Дата: Суббота, 11.08.2018, 21:05 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4890
Репутация: 974 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub Pips_Мяу()
    Const shName As String = "Лист2"
    Dim ar(), i&, j&
    For i = Sheets(shName).Index To Sheets.Count
        If Sheets(i).Visible Then
            ReDim Preserve ar(j)
            ar(j) = i
            j = j + 1
        End If
    Next
    Sheets(ar).Select
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub Pips_Мяу()
    Const shName As String = "Лист2"
    Dim ar(), i&, j&
    For i = Sheets(shName).Index To Sheets.Count
        If Sheets(i).Visible Then
            ReDim Preserve ar(j)
            ar(j) = i
            j = j + 1
        End If
    Next
    Sheets(ar).Select
End Sub
[/vba]

Автор - RAN
Дата добавления - 11.08.2018 в 21:05
pips Дата: Суббота, 11.08.2018, 21:17 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, мяяяу
 
Ответить
СообщениеRAN, мяяяу

Автор - pips
Дата добавления - 11.08.2018 в 21:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Экспорт в PDF, исключая скрытые листы (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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