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

Вход

Регистрация

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

 

= Мир MS Excel/Сохранение книги в PDF - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение книги в PDF (Макросы/Sub)
Сохранение книги в PDF
Anis625 Дата: Пятница, 07.06.2019, 14:17 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 316
Репутация: 7 ±
Замечаний: 0% ±

Excel 2013
Добрый день, участникам форума!

Тема не новая, но прежде чем обратиться перепробовал разные (возможно не все) варианты.

Давно работаю с одним макросом который сохраняет файл в Excel формате:
[vba]
Код
Public Function Книга_Назнач_Сохранить(ByVal str As String, Optional ByVal msg As String)
    ' Тестом НЕ покрыта

    Dim appDispAlert As Boolean
    appDispAlert = Application.DisplayAlerts

    Application.DisplayAlerts = False

    Ws_Dest.Parent.SaveAs ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & _
            str & _
            " на " & Date & ".xlsb", xlExcel12

    Application.DisplayAlerts = appDispAlert

End Function
[/vba]

Пытаюсь адаптировать под сохранение в PDF так:

[vba]
Код
Public Function Книга_Назнач_Сохранить(ByVal str As String, Optional ByVal msg As String)
    ' Тестом НЕ покрыта

    Dim appDispAlert As Boolean
    appDispAlert = Application.DisplayAlerts

    Application.DisplayAlerts = False

    Ws_Dest.Parent.SaveAs ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & _
            str & _
            " на " & Date & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False

    Application.DisplayAlerts = appDispAlert

End Function
[/vba]

Debug ругается на:
[vba]
Код
Ws_Dest.Parent.SaveAs ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & _
            str & _
            " на " & Date & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
[/vba]

Подскажите, пожалуйста, где ошибаюсь?
 
Ответить
СообщениеДобрый день, участникам форума!

Тема не новая, но прежде чем обратиться перепробовал разные (возможно не все) варианты.

Давно работаю с одним макросом который сохраняет файл в Excel формате:
[vba]
Код
Public Function Книга_Назнач_Сохранить(ByVal str As String, Optional ByVal msg As String)
    ' Тестом НЕ покрыта

    Dim appDispAlert As Boolean
    appDispAlert = Application.DisplayAlerts

    Application.DisplayAlerts = False

    Ws_Dest.Parent.SaveAs ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & _
            str & _
            " на " & Date & ".xlsb", xlExcel12

    Application.DisplayAlerts = appDispAlert

End Function
[/vba]

Пытаюсь адаптировать под сохранение в PDF так:

[vba]
Код
Public Function Книга_Назнач_Сохранить(ByVal str As String, Optional ByVal msg As String)
    ' Тестом НЕ покрыта

    Dim appDispAlert As Boolean
    appDispAlert = Application.DisplayAlerts

    Application.DisplayAlerts = False

    Ws_Dest.Parent.SaveAs ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & _
            str & _
            " на " & Date & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False

    Application.DisplayAlerts = appDispAlert

End Function
[/vba]

Debug ругается на:
[vba]
Код
Ws_Dest.Parent.SaveAs ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & _
            str & _
            " на " & Date & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
[/vba]

Подскажите, пожалуйста, где ошибаюсь?

Автор - Anis625
Дата добавления - 07.06.2019 в 14:17
_Boroda_ Дата: Пятница, 07.06.2019, 14:23 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15577
Репутация: 6079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Запишите макрорекодером сохранение книги в ПДФ и посмотрите. Самый простой путь
Получится примерно вот так
[vba]
Код
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "G:\Моя\Стереть\7878.pdf", Quality:=xlQualityStandard, IncludeDocProperties _
        :=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЗапишите макрорекодером сохранение книги в ПДФ и посмотрите. Самый простой путь
Получится примерно вот так
[vba]
Код
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "G:\Моя\Стереть\7878.pdf", Quality:=xlQualityStandard, IncludeDocProperties _
        :=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
[/vba]

Автор - _Boroda_
Дата добавления - 07.06.2019 в 14:23
Anis625 Дата: Пятница, 07.06.2019, 14:29 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 316
Репутация: 7 ±
Замечаний: 0% ±

Excel 2013
_Boroda_,

Не нарушая конструкции кода по формированию имени файла (т.к. этот код связан с другими кодами) попробовал заменить концовку:

ругается все равно на эту часть:

[vba]
Код
Ws_Dest.Parent.SaveAs ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & _
            str & _
            " на " & Date & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties _
        :=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
[/vba]
 
Ответить
Сообщение_Boroda_,

Не нарушая конструкции кода по формированию имени файла (т.к. этот код связан с другими кодами) попробовал заменить концовку:

ругается все равно на эту часть:

[vba]
Код
Ws_Dest.Parent.SaveAs ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & _
            str & _
            " на " & Date & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties _
        :=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
[/vba]

Автор - Anis625
Дата добавления - 07.06.2019 в 14:29
_Boroda_ Дата: Пятница, 07.06.2019, 14:36 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15577
Репутация: 6079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Может Вы все-таки напишете как ругается?
Что такое Ws_Dest?
Как Вы вызываете функцию?
Что такое для нее str?
Зачем там msg?
Где кусок Type?
Чтобы всех этих вопросов не было, нужно файл прикладывать


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМожет Вы все-таки напишете как ругается?
Что такое Ws_Dest?
Как Вы вызываете функцию?
Что такое для нее str?
Зачем там msg?
Где кусок Type?
Чтобы всех этих вопросов не было, нужно файл прикладывать

Автор - _Boroda_
Дата добавления - 07.06.2019 в 14:36
Anis625 Дата: Пятница, 07.06.2019, 15:59 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 316
Репутация: 7 ±
Замечаний: 0% ±

Excel 2013
Удалось оптимизировать файл
К сообщению приложен файл: __-_-.xlsb(50.6 Kb)
 
Ответить
СообщениеУдалось оптимизировать файл

Автор - Anis625
Дата добавления - 07.06.2019 в 15:59
_Boroda_ Дата: Пятница, 07.06.2019, 16:21 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15577
Репутация: 6079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Попробуйте вот так
[vba]
Код
Public Function Книга_Назнач_Сохранить(ByVal str As String, Optional ByVal msg As String)
    Dim appDispAlert As Boolean
    appDispAlert = Application.DisplayAlerts
    Application.DisplayAlerts = False
    fn_ = ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & str & " на " & Date & ".pdf"
    Ws_Dest.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        fn_, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Application.DisplayAlerts = appDispAlert
End Function
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПопробуйте вот так
[vba]
Код
Public Function Книга_Назнач_Сохранить(ByVal str As String, Optional ByVal msg As String)
    Dim appDispAlert As Boolean
    appDispAlert = Application.DisplayAlerts
    Application.DisplayAlerts = False
    fn_ = ThisWorkBook.Path & "\@ Статус по развитию системы КПЭ_" & str & " на " & Date & ".pdf"
    Ws_Dest.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        fn_, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Application.DisplayAlerts = appDispAlert
End Function
[/vba]

Автор - _Boroda_
Дата добавления - 07.06.2019 в 16:21
Anis625 Дата: Пятница, 07.06.2019, 16:37 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 316
Репутация: 7 ±
Замечаний: 0% ±

Excel 2013
_Boroda_,

ругается
желтым выделяет первую строку:
[vba]
Код
Public Function Книга_Назнач_Сохранить(ByVal str As String, Optional ByVal msg As String)
[/vba]

и синим
[vba]
Код
fn_ =
[/vba]


Сообщение отредактировал Anis625 - Пятница, 07.06.2019, 16:46
 
Ответить
Сообщение_Boroda_,

ругается
желтым выделяет первую строку:
[vba]
Код
Public Function Книга_Назнач_Сохранить(ByVal str As String, Optional ByVal msg As String)
[/vba]

и синим
[vba]
Код
fn_ =
[/vba]

Автор - Anis625
Дата добавления - 07.06.2019 в 16:37
Anis625 Дата: Суббота, 08.06.2019, 08:57 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 316
Репутация: 7 ±
Замечаний: 0% ±

Excel 2013
_Boroda_,

нашел свой старый рабочий файл, в котором из Excel вывожу в PDF:
[vba]
Код
Sub Создать_PDF()
    Dim arrSelSheets(), i As Long
    Application.ScreenUpdating = False

    ReDim arrSelSheets(1 To ActiveWindow.SelectedSheets.Count)
    For i = 1 To UBound(arrSelSheets)
        arrSelSheets(i) = ActiveWindow.SelectedSheets(i).Name
    Next
     
    'здесь укажите, какие листы нужно сохранить в PDF
    Worksheets(Array("Карта КПЭ_год", "Мониторинг КПЭ_ежекв", "Оценка", "Мониторинг КП_ежекв", "Оценка проектов (по году)")).Select
         
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        (Left(ActiveWorkbook.FullName, InStrRev(ActiveWorkbook.FullName, ".")) & "pdf"), Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
         
    Worksheets(arrSelSheets).Select

    Application.ScreenUpdating = True
    MsgBox "ГОТОВО!" & vbCrLf & "Excel файл тоже необходимо прикрепить в СЭД", vbInformation
End Sub
[/vba]

попробовал его адаптировать под текущую задачу - не срабатывает =(
 
Ответить
Сообщение_Boroda_,

нашел свой старый рабочий файл, в котором из Excel вывожу в PDF:
[vba]
Код
Sub Создать_PDF()
    Dim arrSelSheets(), i As Long
    Application.ScreenUpdating = False

    ReDim arrSelSheets(1 To ActiveWindow.SelectedSheets.Count)
    For i = 1 To UBound(arrSelSheets)
        arrSelSheets(i) = ActiveWindow.SelectedSheets(i).Name
    Next
     
    'здесь укажите, какие листы нужно сохранить в PDF
    Worksheets(Array("Карта КПЭ_год", "Мониторинг КПЭ_ежекв", "Оценка", "Мониторинг КП_ежекв", "Оценка проектов (по году)")).Select
         
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        (Left(ActiveWorkbook.FullName, InStrRev(ActiveWorkbook.FullName, ".")) & "pdf"), Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
         
    Worksheets(arrSelSheets).Select

    Application.ScreenUpdating = True
    MsgBox "ГОТОВО!" & vbCrLf & "Excel файл тоже необходимо прикрепить в СЭД", vbInformation
End Sub
[/vba]

попробовал его адаптировать под текущую задачу - не срабатывает =(

Автор - Anis625
Дата добавления - 08.06.2019 в 08:57
InExSu Дата: Суббота, 15.06.2019, 01:27 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 583
Репутация: 67 ±
Замечаний: 0% ±

Excel 2010
Привет!
Попробуйте перед
fn_ = ThisWorkBook.Path ' ...

вставить строку
[vba]
Код
Dim fn_ As String
[/vba]


На сохранение второго закона термодинамики: яндекс.кошелёк 410012113235839
 
Ответить
СообщениеПривет!
Попробуйте перед
fn_ = ThisWorkBook.Path ' ...

вставить строку
[vba]
Код
Dim fn_ As String
[/vba]

Автор - InExSu
Дата добавления - 15.06.2019 в 01:27
Anis625 Дата: Вторник, 18.06.2019, 18:22 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 316
Репутация: 7 ±
Замечаний: 0% ±

Excel 2013
InExSu,

Только добрался до файла.
Файл почти отлично сохраняет в PDF =) Только перед тем как сохранить в PDF выходит сообщение "Вы хотите сохранить изменения в файле Книга 1?" и номер файла каждый раз увеличивается с каждым файлом. Даже если заново делаю отсчет продолжается (на трех строчках тестирую пять раз сделал дошел до файла номер №15). Нажимаю не сохранять сохраняется PDF. Попробовал сохранить - получается делает копию в excel.
 
Ответить
СообщениеInExSu,

Только добрался до файла.
Файл почти отлично сохраняет в PDF =) Только перед тем как сохранить в PDF выходит сообщение "Вы хотите сохранить изменения в файле Книга 1?" и номер файла каждый раз увеличивается с каждым файлом. Даже если заново делаю отсчет продолжается (на трех строчках тестирую пять раз сделал дошел до файла номер №15). Нажимаю не сохранять сохраняется PDF. Попробовал сохранить - получается делает копию в excel.

Автор - Anis625
Дата добавления - 18.06.2019 в 18:22
_Boroda_ Дата: Среда, 19.06.2019, 10:11 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15577
Репутация: 6079 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Не в одном месте добавки сделал, поэтому здесь не кладу код
К сообщению приложен файл: -1-1.xlsb(52.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Не в одном месте добавки сделал, поэтому здесь не кладу код

Автор - _Boroda_
Дата добавления - 19.06.2019 в 10:11
Anis625 Дата: Пятница, 21.06.2019, 10:41 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 316
Репутация: 7 ±
Замечаний: 0% ±

Excel 2013
_Boroda_,

Код попробовал сразу. Получилось написать только сейчас.

Как раз то что доктор прописал. Все работает отлично. И спасибо за вишенку на торте в виде финального сообщения =)

Получилось отлично. Спасибо Всем за помощь.
 
Ответить
Сообщение_Boroda_,

Код попробовал сразу. Получилось написать только сейчас.

Как раз то что доктор прописал. Все работает отлично. И спасибо за вишенку на торте в виде финального сообщения =)

Получилось отлично. Спасибо Всем за помощь.

Автор - Anis625
Дата добавления - 21.06.2019 в 10:41
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение книги в PDF (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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