Экспорт в 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
Ответить
Сообщение Доброе утро! Есть код, сохраняющий отчет из нескольких листов в формате 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
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
[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
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение [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
Почти. Возможно, не так описал ситуацию. Есть 15 листов. Нужно выделить с 5 по 15 лист и отправить в экспорт, при этом, иногда приходится скрывать листы в промежутке с 6 по 14-й. В принципе, Ваш вариант подойдет, если скрыть первые 5 листов, но их пока хотелось бы держать в быстром доступе...
Почти. Возможно, не так описал ситуацию. Есть 15 листов. Нужно выделить с 5 по 15 лист и отправить в экспорт, при этом, иногда приходится скрывать листы в промежутке с 6 по 14-й. В принципе, Ваш вариант подойдет, если скрыть первые 5 листов, но их пока хотелось бы держать в быстром доступе...pips
Сообщение отредактировал pips - Суббота, 11.08.2018, 12:47
Ответить
Сообщение Почти. Возможно, не так описал ситуацию. Есть 15 листов. Нужно выделить с 5 по 15 лист и отправить в экспорт, при этом, иногда приходится скрывать листы в промежутке с 6 по 14-й. В принципе, Ваш вариант подойдет, если скрыть первые 5 листов, но их пока хотелось бы держать в быстром доступе...Автор - pips Дата добавления - 11.08.2018 в 12:43
RAN
Дата: Суббота, 11.08.2018, 13:39 |
Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Зачем спрашивать, как сохранить, если вы просто выделить не можете? [vba]Код
Sheets(Array("Лист1", "Лист2")).Select
[/vba]
Зачем спрашивать, как сохранить, если вы просто выделить не можете? [vba]Код
Sheets(Array("Лист1", "Лист2")).Select
[/vba] RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Зачем спрашивать, как сохранить, если вы просто выделить не можете? [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
Ответить
Сообщение Зачем спрашивать, как сохранить, если вы просто выделить не можете?
И так каждый раз код переписывать?) Спасибо, пока воспользуюсь Вашим первым вариантом, потом форму с выбором сделаю.Автор - pips Дата добавления - 11.08.2018 в 13:56
RAN
Дата: Суббота, 11.08.2018, 14:34 |
Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
И так каждый раз код переписывать?)
Зачем? вполне достаточно написать этоSheets(Evaluate("TRANSPOSE(ROW(" & _ Sheets("Титульный").Index & ":" & Sheets("Лицензия").Index & "))")).Select 'выбираем нужные листы
НЕ кисточкой хвоста.
И так каждый раз код переписывать?)
Зачем? вполне достаточно написать этоSheets(Evaluate("TRANSPOSE(ROW(" & _ Sheets("Титульный").Index & ":" & Sheets("Лицензия").Index & "))")).Select 'выбираем нужные листы
НЕ кисточкой хвоста.RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение И так каждый раз код переписывать?)
Зачем? вполне достаточно написать это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
Ответить
Сообщение Шутку про кисточку хвоста понял не сразу, но оценил. А вот кривой код переписать пока опыта не хватает.Автор - pips Дата добавления - 11.08.2018 в 16:18
RAN
Дата: Суббота, 11.08.2018, 18:54 |
Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Для того, чтобы вам помочь, нужно, как минимум, знать, попытка выполнения каких действий породила эту дикую запись. Ни файла, ни пояснений... Поможите чем можите.
Для того, чтобы вам помочь, нужно, как минимум, знать, попытка выполнения каких действий породила эту дикую запись. Ни файла, ни пояснений... Поможите чем можите. RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Для того, чтобы вам помочь, нужно, как минимум, знать, попытка выполнения каких действий породила эту дикую запись. Ни файла, ни пояснений... Поможите чем можите. Автор - RAN Дата добавления - 11.08.2018 в 18:54
pips
Дата: Суббота, 11.08.2018, 19:19 |
Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 69
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Ни файла, ни пояснений...
Код нашел в интернете и переделал как мог под себя. Приложил файл. При нажатии кнопки нужные листы сохраняются в PDF. Если скрыть "Лист3", то выскакивает ошибка. Как проигнорировать скрытый лист и сохранить только видимые листы в промежутке между листом 2 и листом 4? (Листы скрываются только в этом промежутке)
Ни файла, ни пояснений...
Код нашел в интернете и переделал как мог под себя. Приложил файл. При нажатии кнопки нужные листы сохраняются в PDF. Если скрыть "Лист3", то выскакивает ошибка. Как проигнорировать скрытый лист и сохранить только видимые листы в промежутке между листом 2 и листом 4? (Листы скрываются только в этом промежутке)pips
Ответить
Сообщение Ни файла, ни пояснений...
Код нашел в интернете и переделал как мог под себя. Приложил файл. При нажатии кнопки нужные листы сохраняются в PDF. Если скрыть "Лист3", то выскакивает ошибка. Как проигнорировать скрытый лист и сохранить только видимые листы в промежутке между листом 2 и листом 4? (Листы скрываются только в этом промежутке)Автор - pips Дата добавления - 11.08.2018 в 19:19
RAN
Дата: Суббота, 11.08.2018, 21:05 |
Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
[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
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение [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