Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2010, 14:59   #1
Alex19789
Пользователь
 
Регистрация: 15.12.2008
Сообщений: 31
По умолчанию Экспорт в PDF

Уважаемые форумчане, подскажите пожалуйста (голова совсем не варит)
Необходимо экспортировать 2 страницы в PDF так, чтобы названия PDF-файлов были взяты из определённых ячеек на каждой из исходных страниц (D3,D7). Пока добился только присвоение имён "Калькуляция" и "Нормирование".
Ниже - имеющийся код.

Sub Экспорт()
'
' Экспорт
'

Sheets("Калькуляция").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\Калькуляция" (нужны значения)_
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Sheets("Нормирование").Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\Нормирование" (нужны значения)_
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

End Sub

Вместо слов (нужны значения) необходимы значения вышеуказанных ячеек исходного файла.
Заранее благодарен.
Alex19789 вне форума Ответить с цитированием
Старый 11.01.2010, 15:40   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Попробуйте такой вариант:
Код:
Sub ПримерИспользования()
    ЭкспортЛиста Sheets("Калькуляция")
    ЭкспортЛиста Sheets("Нормирование")
End Sub

Function ЭкспортЛиста(ByVal Лист As Worksheet)
    Папка = Replace(Лист.Parent.FullName, Лист.Parent.Name, "")
    Лист.ExportAsFixedFormat xlTypePDF, Папка & Лист.Name & " " & Лист.Range("d3") _
                                        & " " & Лист.Range("d7") & ".pdf"
End Function
EducatedFool вне форума Ответить с цитированием
Старый 11.01.2010, 16:17   #3
Alex19789
Пользователь
 
Регистрация: 15.12.2008
Сообщений: 31
По умолчанию

Спасибо! Всё работает!
Имеется ли возможность сделать следующее:
Код запускается автоматически перед закрытием книги, а сама книга автоматически сохраняется. При этом полученные PDF отображаются на экране?
Alex19789 вне форума Ответить с цитированием
Старый 11.01.2010, 17:10   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Код запускается автоматически перед закрытием книги, а сама книга автоматически сохраняется. При этом полученные PDF отображаются на экране?
Поместите этот код в модуль книги:

Код:
Private Sub Workbook_BeforeClose(Cancel As Boolean) ' срабатывает при закрытии книги

    ' экспортируем листы, записывая в переменные имена создаваемых файлов
    файл1 = ЭкспортЛиста(Sheets("Калькуляция"))
    файл2 = ЭкспортЛиста(Sheets("Нормирование"))
    
    ThisWorkbook.Save    ' сохраняем книгу перед закрытием

    ' запускаем 1-й файл:
    CreateObject("wscript.shell").Run Chr(34) & файл1 & Chr(34)
    ' запускаем 2-й файл:
    CreateObject("wscript.shell").Run Chr(34) & файл2 & Chr(34)
End Sub

Function ЭкспортЛиста(ByVal Лист As Worksheet) As String
    ' получает в качестве параметра лист для экспорта
    ' возвращает имя созданного файла PDF
    Папка = Replace(Лист.Parent.FullName, Лист.Parent.Name, "")
    ЭкспортЛиста = Папка & Лист.Name & " " & Лист.Range("d3") & " " & Лист.Range("d7") & ".pdf"
    Лист.ExportAsFixedFormat xlTypePDF, ЭкспортЛиста
End Function
EducatedFool вне форума Ответить с цитированием
Старый 11.01.2010, 17:40   #5
Alex19789
Пользователь
 
Регистрация: 15.12.2008
Сообщений: 31
По умолчанию

Спасибо огромное! Всё работает! Супер!
Alex19789 вне форума Ответить с цитированием
Старый 15.09.2016, 20:36   #6
wbenrico@gmail.com
Новичок
Джуниор
 
Регистрация: 15.09.2016
Сообщений: 3
По умолчанию Макрос Excel to Pdf

подскажите пожалуйста макрос чтоб один лист под Именем "Письмо" который нужно экспортировался в Pdf и сохранялся под именем Письмо№_____ где номер письма береться из ячейки A3.
wbenrico@gmail.com вне форума Ответить с цитированием
Старый 15.09.2016, 20:41   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от wbenrico@gmail.com Посмотреть сообщение
подскажите пожалуйста макрос чтоб один лист под Именем "Письмо" который нужно экспортировался в Pdf и сохранялся под именем Письмо№_____ где номер письма береться из ячейки A3.
Код:
Sub ПримерИспользования()
    ЭкспортЛиста Sheets("Письмо")
    
End Sub

Function ЭкспортЛиста(ByVal Лист As Worksheet)
    Папка = Replace(Лист.Parent.FullName, Лист.Parent.Name, "")
    Лист.ExportAsFixedFormat xlTypePDF, Папка & "Письмо№" & " " & Лист.Range("A3") & ".pdf"
End Function
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 17.09.2016, 13:28   #8
wbenrico@gmail.com
Новичок
Джуниор
 
Регистрация: 15.09.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
Sub ПримерИспользования()
    ЭкспортЛиста Sheets("Письмо")
    
End Sub

Function ЭкспортЛиста(ByVal Лист As Worksheet)
    Папка = Replace(Лист.Parent.FullName, Лист.Parent.Name, "")
    Лист.ExportAsFixedFormat xlTypePDF, Папка & "Письмо№" & " " & Лист.Range("A3") & ".pdf"
End Function
Благодарю от всей Души. Это нереально круто!
wbenrico@gmail.com вне форума Ответить с цитированием
Старый 18.09.2016, 09:51   #9
wbenrico@gmail.com
Новичок
Джуниор
 
Регистрация: 15.09.2016
Сообщений: 3
По умолчанию Экспорт в pdf

Подскажите пожалуйста. Как соединить эти два макроса.
Код:
Sub Пример()
    Экспорт листа Sheets("Письмо")
    
End Sub

Function Экспорт листа(ByVal Лист As Worksheet)
    Папка = Replace(Лист.Parent.FullName, Лист.Parent.Name, "")
    Лист.ExportAsFixedFormat xlTypePDF, Папка & "Письмо№" & " " & Лист.Range("C11") & ".pdf"
End Function
В первом случаи лист под названием Письмо экспортируеться в Pdf с именем письмо№______ номер береться из ячейки C11

Код:
Sub Макрос4()
'
' Макрос4 Макрос
'

'
    Range("U19").Select
    Selection.Copy
    Range("C11").Select
    ActiveSheet.Paste
    Range("V19").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("F8:H8").Select
    ActiveSheet.Paste
    Range("W19").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("F9:H9").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False- до сюда
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\wbenr_000\Desktop\Работа\Корпоративная почта\Письмо Автоматическое.pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, From:=1, To:=1, OpenAfterPublish:=False
End Sub
Мне необходимо чтобы сначало выполнялся второй макрос до "Application.CutCopyMode = False". А затем первый макрос, но чтобы экспорт происходил листа под названием Письмо и только первой страницы.
Заранее благодарю.

Последний раз редактировалось Alex11223; 18.09.2016 в 09:53.
wbenrico@gmail.com вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PDF Яр|/||< (^_^) Компоненты Delphi 4 09.07.2009 16:50
PDF mrs.rafanadal Общие вопросы Delphi 6 12.06.2009 19:44
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15