Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 2
Регистрация: 24.02.2016
Сообщений: 75
1

Создать pdf из нескольких листов файла excel 2010

21.02.2017, 11:11. Показов 3245. Ответов 4
Метки нет (Все метки)

Добрый день, хочу создать pdf файлы из нескольких страниц в моем документе, использую excel 2010, еще хочу чтобы они объединялись именно в 1 файл пдф и распологались там по порядку. В excel 2010 у меня есть, как я понял, надстройка PDF Complete. Помогите мне это реализовать. Я начал с того что нашел код приведенный ниже, но он у меня не работает, пишет ошибку "Expected end of statement".

Visual Basic
1
2
3
4
5
Sub 1()
 
ActiveWorkbook.Sheets(1).ExportAsFixedFormat Type:=xlTypePDF FileName:=“File.pdf” Quality:=xlQualityStandard DisplayFileAfterPublish:=True
 
End Sub
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2017, 11:11
Ответы с готовыми решениями:

Импорт из excel нескольких листов
Здравствуйте не могу найти возможность выгрузки таблиц нескольких листов из excel в access в...

Excel, выделение нескольких листов
Доброго! Необходимы выделить сразу несколько листов, а именно повторить данный макрос кодом OLE....

Вывод нескольких листов Excel в один StringGrid
Пытаюсь вывести из Excel листы из файла, в котором больше одного листа в один компонент StringGrid....

Импорт данных из нескольких листов Excel в DataGridView
Всем доброго дня. Заранее извиняюсь если окажется, что тема дублируется. подскажите решение на...

4
6848 / 2786 / 525
Регистрация: 19.10.2012
Сообщений: 8,473
21.02.2017, 12:22 2
Отуда брали? Куча неточностей... Сравните:
Visual Basic
1
2
3
Sub tt()
ActiveWorkbook.Sheets(1).ExportAsFixedFormat Type:=xlTypePDF, Filename:="File.pdf", Quality:=xlQualityStandard, OpenAfterPublish:=True
End Sub
1
1 / 1 / 1
Регистрация: 16.12.2015
Сообщений: 85
21.02.2017, 21:34 3
Лучший ответ Сообщение было отмечено The_Fog как решение

Решение

Добрый вечер.

Вот рабочий код, листы должны располагаться в файле по порядку, то есть если хотим чтобы лист 2 выгружался 1 листом файла PDF, то его надо переместить в начало.

Думаю где поменять название листов и изменить путь на свой разберетесь.


PureBasic
1
2
3
4
5
6
7
8
9
 Sub КодСФормулойВыгрузка()
 
  Sheets(Array("Лист1", "Лист2", "Лист3")).Select
  
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
   Filename:="C:\Users\MSI-PC\Desktop\Excel\VBA\Тест ", _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    
End Sub
1
3 / 3 / 0
Регистрация: 12.12.2015
Сообщений: 174
24.02.2017, 16:19 4
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Sub Сохранить_в_PDF()
    Dim wb As Workbook, wbin As Workbook, s As Object   ' wb и wbin это мы обращаемся прямо к книгам как к объектам
    Set wb = ThisWorkbook
        Set s = CreateObject("Scripting.FileSystemObject")
Dim СписокФайлов As FileDialogSelectedItems
    Set СписокФайлов = GetFilenamesCollection("Заголовок окна", ThisWorkbook.Path & "\ГОТОВО")   ' выводим окно выбора
    ' ===================== другие варианты вызова функции =====================
    ' стартовая папка не указана, заголовок окна по умолчанию
           'Set СписокФайлов = GetFilenamesCollection
    ' обзор файлов начинается с папки "Рабочий стол"
           'СтартоваяПапка = CreateObject("WScript.Shell").SpecialFolders("Desktop")
           'Set СписокФайлов = GetFilenamesCollection("Выберите файлы на рабочем столе", СтартоваяПапка)
    ' ==========================================================================
    If СписокФайлов Is Nothing Then Exit Sub  ' выход, если пользователь отказался от выбора файлов
Application.ScreenUpdating = 0              ' Закрываем глазки Excel'ю
Application.Calculation = xlManual
Application.EnableCancelKey = xlDisabled    ' Запрет прерывания макроса
   
        'Создадим папку для сбора фалов книг.
    On Error Resume Next: Err.Clear
MkDir wb.Path & "\ГОТОВО\ФАЙЛЫ НА ПРОВЕРКУ"
        ' Перебираем все файлы в списке
    For Each File In СписокФайлов
    
         Set wbin = Application.Workbooks.Open(File) ' установим переменную содержаащая полный путь к книге + имя книги с расхирением ".xlsb" (5 знаков)
         
         book = ActiveWorkbook.Name 'Имя открытой книги
         
Name = Left(book, Len(book) - 5) & ".pdf" ' Имя книги без расширения ".xlsb" ' Задать имя будущего файла можно тут. Заранее установите переменную даты.
 
        ' Сохраняем активную (та, что у нас открыта), все листы, в формат Имя файла.pdf
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        wb.Path & "\ГОТОВО\ФАЙЛЫ НА ПРОВЕРКУ" & Name, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        
          wbin.Close ' Сохранили - Закрываем книгу
 
         's.MoveFile File, wb.Path & "\ГОТОВО\ОТПЕЧАТАНО" & Book  'Перемещаем файл
    Next ' Следующий документ
    Application.Calculation = xlAutomatic
    Application.ScreenUpdating = 1
    Application.EnableCancelKey = xlInterrupt   'Включение фнкционирования клавиши Esc
    MsgBox "ВСЕ ФАЙЛЫ СОХРАНЕНЫ", 64, "СОХРАНЕНИЕ ДОКУМЕНТОВ"
End Sub
Function GetFilenamesCollection(Optional ByVal Title As String = "Выберите файлы для обработки", _
                             Optional ByVal InitialPath As String = "c:") As FileDialogSelectedItems
    ' функция выводит диалоговое окно выбора нескольких файлов с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает массив путей к выбранным файлам, или пустую строку в случае отказа от выбора
    With Application.FileDialog(3) ' msoFileDialogFilePicker
        .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
        If .Show <> -1 Then Exit Function
        Set GetFilenamesCollection = .SelectedItems
    End With
End Function
0
0 / 0 / 2
Регистрация: 24.02.2016
Сообщений: 75
27.02.2017, 11:30  [ТС] 5
Zashi6ala, А как добавить в этот массив лист из другой книги
Visual Basic
1
Sheets(Array("Лист1", "Лист2", "Лист3")).Select
Добавлено через 2 часа 59 минут
Как вообще объявить массив из листов которые находятся в разных книгах а потом выделить их ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2017, 11:30

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Собрать данные из нескольких листов Excel на один лист
Добрый день! Подскажите как решить следующую задачку: Нужно собрать данные с листов Эксель,...

Как создать телефонную книгу (вытащить данные из нескольких листов на один), телефонная книга
В файле есть 50 листов с именами, фамилиями сотрудников и другой инфой. Нужно: 1 - создать...

Копирование данных с разных листов файла Excel
Всем привет. Подскажите, пожалуйста, как скопировать данные с одного файла Excel имеющего два (и...

Word 2010: связанную таблицу Excel отображать на нескольких страницах
Добрый день. Есть два файла - таблица в Exel и Word - отчет. В Word нажимаю &quot;Вставка&quot; - &quot;Объект&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.