Note: The other languages of the website are Google-translated. Back to English

Как использовать командную кнопку для сохранения активного рабочего листа в виде файла PDF в Excel?

При работе в Microsoft Excel вы можете столкнуться с проблемой сохранения активного рабочего листа в виде файла PDF. В этой статье вы можете узнать, как сохранить активный рабочий лист в виде файла PDF с кодом VBA с помощью командной кнопки. И если вы также хотите сохранить диапазон или каждый рабочий лист в активной книге как отдельный файл PDF, эта статья также может вам помочь.

Используйте командную кнопку, чтобы сохранить активный рабочий лист как файл PDF с кодом VBA
Легко сохранять активный или каждый рабочий лист как отдельный файл PDF с помощью Kutools for Excel


Используйте командную кнопку, чтобы сохранить активный рабочий лист как файл PDF с кодом VBA

Вы можете запустить следующий код VBA, чтобы сохранить активный рабочий лист в виде файла PDF, нажав кнопку Command. Пожалуйста, сделайте следующее.

1. Во-первых, вам необходимо создать папку с именем PDF для сохранения вашего нового преобразованного файла PDF. Здесь я создаю эту папку на моем локальном диске (C :).

2. Вставьте командную кнопку, нажав Застройщик > Вставить > Командная кнопка (элемент управления ActiveX). Смотрите скриншот:

2. Затем нарисуйте командную кнопку на листе, в котором вам нужно добавить новые строки, щелкните правой кнопкой мыши кнопку и нажмите Объявления из контекстного меню.

3. в Объявления диалоговом окне введите отображаемый текст командной кнопки в поле Подпись поле под Категории вкладку, а затем закройте диалоговое окно.

Вы можете видеть, что отображаемый текст кнопки управления изменен, как показано ниже.

4. Снова щелкните правой кнопкой мыши командную кнопку, а затем щелкните Просмотреть код из контекстного меню.

5. В дебюте Microsoft Visual Basic для приложений в окне кода замените исходный код в окне кода следующим кодом VBA.

Код VBA: кнопка управления для сохранения активного листа в формате PDF

Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:="C:\PDF\Export.pdf", _
            OpenAfterPublish:=False
    Application.ScreenUpdating = True
End Sub

Внимание: В коде CommandButton1 - это имя командной кнопки, которую вы будете использовать для сохранения активного листа в виде файла PDF. «C: \ PDF \ Export.pdf» - это путь и имя вашего сохраняемого файла PDF.

6. нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно. Затем выключите Режим проектирования под Застройщик меню.

Теперь нажмите кнопку Command, активный рабочий лист будет сохранен в виде файла PDF с именем «Экспорт» и расположен в указанном месте.


Сохраните каждый рабочий лист как отдельный PDF-файл активной книги с помощью Kutools for Excel

Здесь рекомендую Разделить книгу полезности Kutools for Excel чтобы легко сохранить активный рабочий лист в виде файла PDF. Кроме того, с помощью этой утилиты вы также можете сохранить каждый рабочий лист в текущей книге как отдельный файл PDF.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. В книге вам необходимо сохранить каждый лист как отдельный файл PDF, затем щелкнуть Кутулс Плюс > Workbook > Разделить книгу. Смотрите скриншот:

2. в Разделить книгу диалоговое окно, настройте следующим образом:

2.1) Проверяйте только имя активного листа в Имя рабочего листа коробка;
2.2) Выбрать PDF (* .pdf) из файла Сохранить как раскрывающийся список;
2.3) Нажмите Трещина кнопку, затем Выбор папки появится диалоговое окно, укажите папку для сохранения файла PDF;

Затем выбранный рабочий лист сразу сохраняется как файл PDF.

Заметки:

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

  Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Демо: Сохраните выделение или каждый рабочий лист как PDF с помощью Kutools for Excel


Статьи по теме:


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (33)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Как можно разрешить пользователю вводить имя файла, а не «Export.pdf»? Спасибо, Ян
Этот комментарий был сведен к минимуму модератором на сайте
Подпрограмма Сохранить как PDF ()
Обновление Application.Screen = False
Тип ActiveSheet.ExportAsFixedFormat:=xlTypePDF, _
Имя файла:=Application.InputBox("Введите имя файла")

strExcelPath = "H:\Мои документы"

Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
У меня есть аналогичный запрос. Я хочу, чтобы файл назывался так же, как и конкретная ячейка на вкладке, IE: G19 (это номер счета-фактуры, и я хочу, чтобы файл был сохранен в формате PDF с этим именем)? . Мне удалось заставить работать export.pdf, но это не сработает при нескольких сохранениях. Любые мысли, спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Следующий код VBA может помочь вам решить проблему. Выберите ячейку G19 во всплывающем диалоговом окне Kutoos для Excel после запуска кода. Спасибо за ваш комментарий.

Private Sub CommandButton1_Click ()
Dim xRg как диапазон
Dim xName как строка
On Error Resume Next
Приложение.ScreenUpdating = False
Установите xRg = Application.InputBox («Выберите ячейку, которую вы назовете PDF со значением ячейки:», «Kutools for Excel», Selection.Address, , , , , 8)
Если xRg ничего не значит, выйдите из Sub
xName = xRg(1).Значение
Тип ActiveSheet.ExportAsFixedFormat:=xlTypePDF, _
Имя файла:="C:\PDF\" & xName & ".pdf", _
OpenAfterPublish: = False
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Я изменил путь на диск D, но он не сохраняется на диске D. Что делать?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Акшай МН,
Если вы изменили указанный выше путь к диску D, убедитесь, что на вашем диске D есть папка с именем PDF.
Если вы хотите сохранить файл только на диске D без создания вложенной папки, используйте этот путь к папке: "C:\" и xName и ".pdf"
Этот комментарий был сведен к минимуму модератором на сайте
Теперь я могу конвертировать свои файлы в PDF с помощью командной кнопки, но могу ли я также получить ту же функцию, позволяющую использовать разные имена для каждого файла; на основе существующей числовой структуры?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Рэнди,
Извините, я не могу помочь с этим, пожалуйста, задайте любой вопрос на нашем форуме: https://www.extendoffice.com/forum.html чтобы получить больше поддержки Excel от нашего профессионала.
Этот комментарий был сведен к минимуму модератором на сайте
ЭТО ПОКАЗЫВАЕТ ошибку времени выполнения "1004"
Этот комментарий был сведен к минимуму модератором на сайте
Привет Нзи,
Мне нужно знать вашу версию Excel. Спасибо за ваш комментарий.
Этот комментарий был сведен к минимуму модератором на сайте
Пожалуйста, вставьте код для кнопки «Сохранить как PDF» в Microsoft Excel.
Этот комментарий был сведен к минимуму модератором на сайте
Как это сделать для MS Word? У меня есть куча вопросов с вариантами переключателя в качестве ответов. Поэтому я хочу создать командную кнопку для вывода вопросов с выбранными ответами только в другом текстовом документе. Как мне это сделать? Код бы очень помог! Я отправлю вам документ по электронной почте, если он вам нужен. Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
Добрый день,
Извините, пока не могу вам с этим помочь.
Этот комментарий был сведен к минимуму модератором на сайте
ПодзаписьPDF()
Dim sNazwaPliku As String

sNazwaPliku = ActiveSheet.Name

Application.Dialogs(xlDialogSaveAs).Show sNazwaPliku, 57

End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Я следовал коду, вот что у меня есть:

Private Sub CommandButton2_Click ()
Приложение.ScreenUpdating = False
Тип ActiveSheet.ExportAsFixedFormat:=xlTypePDF, _
Имя файла:=Диапазон("P2"), _
OpenAfterPublish:=Истина
Application.ScreenUpdating = True
End Sub

мне нужно сохранить файл в том месте, где находится исходный файл. также нужна копия файла excel для сохранения с тем же именем.
Этот комментарий был сведен к минимуму модератором на сайте
Привет Мэтт Бентли,
Код работает идеально. Спасибо, что поделились.
Этот комментарий был сведен к минимуму модератором на сайте
Алло,

канн джеманд мир хельфен?

Ich nutze diese Zeilen und möchte jedoch, das aus dem Blatt ein Zellenwert als Dateiname gespeichert wird:

Private Sub CommandButton1_Click ()
Приложение.ScreenUpdating = False
Тип ActiveSheet.ExportAsFixedFormat:=xlTypePDF, _
Имя файла:="C:\PDF\Export.pdf", _
OpenAfterPublish: = False
Application.ScreenUpdating = True
End Sub

Спасибо
Этот комментарий был сведен к минимуму модератором на сайте
Алло,

ich nutze diese Zeilen und möchte das eine Zelle als Dateiname verwenden wird!
Kann mir jemand ein Tipp geben?


Private Sub CommandButton1_Click ()
Приложение.ScreenUpdating = False
Тип ActiveSheet.ExportAsFixedFormat:=xlTypePDF, _
Имя файла:="c:/" & G3 & ".pdf", _
OpenAfterPublish: = False
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Саша,
Следующий код может помочь. Перед применением кода измените 'C:\Пользователи\Win10x64Test\Документы\PDF' в четвертой строке к вашему собственному пути к папке назначения.
Private Sub CommandButton1_Click()
'Updated by Extendoffice 20220929
    Application.ScreenUpdating = False
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:="C:\Users\Win10x64Test\Documents\PDF\" & Range("G3").Value, _
            OpenAfterPublish:=False
    Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Что это за кнопка - "другой" + Q сочетается" ?
Этот комментарий был сведен к минимуму модератором на сайте
Привет Диана,
Это клавиша «Alt» на клавиатуре. Microsoft Excel позволяет пользователям нажимать клавиши «Alt» + «Q», чтобы закрыть окно Microsoft Visual Basic для приложений и вернуться к рабочему листу.
Этот комментарий был сведен к минимуму модератором на сайте
Геэдаг

Это может быть фильм, который можно использовать в Excelblad, чтобы сделать его для Command-Knop Om Een Actief Werkblad Op Te Slaan Als PDF-Bestand Met VBA-Code.
kom er niet helemaal uit met de code.
Альваст Беданкт
Этот комментарий был сведен к минимуму модератором на сайте
Привет Макс,
Извините, я не понимаю, что вы имеете в виду. Возможно, вам потребуется прикрепить скриншот того, что вы пытаетесь сделать. Извините за беспокойство.
Этот комментарий был сведен к минимуму модератором на сайте
Привет Team,

Просто интересно, может ли кто-нибудь помочь с изменением места назначения созданного файла на рабочий стол любого пользователя? Моя компания не разрешает доступ к C:, поэтому скрипт не работает.

МНОГО МНОГО МНОГО СПАСИБО!
Этот комментарий был сведен к минимуму модератором на сайте
Привет Бен Стоддарт,
Вам просто нужно открыть любую папку на рабочем столе и скопировать путь к папке в поле адреса, а затем заменить путь к папке в коде VBA на путь, который вы скопировали.
Вот новая строка имени файла (пожалуйста, замените имя пользователя своим именем пользователя), Экспорт.pdf имя и расширение файла PDF:
Имя файла:="C:\Users\Имя пользователя\Desktop\PDF\Export.pdf", _
Этот комментарий был сведен к минимуму модератором на сайте
Всякий раз, когда я запускаю это, он сохраняет PDF-файл на моем локальном диске, где сохранены листы Excel, как мне остановить автоматическое сохранение?

Private Sub CommandButton1_Click ()
Приложение.ScreenUpdating = False
Тип ActiveSheet.ExportAsFixedFormat:=xlTypePDF, _
OpenAfterPublish:=Истина
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Когда я запускаю приведенное ниже, он автоматически создает локальную версию PDF - как мне остановить автоматическое сохранение?

Private Sub CommandButton1_Click ()
Приложение.ScreenUpdating = False
Тип ActiveSheet.ExportAsFixedFormat:=xlTypePDF, _
OpenAfterPublish:=Истина
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Привет Джеймс,
Вы хотите открыть всплывающее окно для выбора папки для сохранения файла PDF вручную?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Кристал, в идеале да, чтобы я мог выбрать, где сохранить PDF.
Этот комментарий был сведен к минимуму модератором на сайте
Х Джеймс,

Следующий код VBA может помочь вам решить проблему.
Внимание: Вы не можете обрабатывать и место назначения, и имя файла одновременно. После добавления следующего кода VBA, когда вы нажмете кнопку, появится диалоговое окно, в котором вы сможете выбрать папку назначения. После выбора папки назначения появится окно, в котором вы можете указать имя файла PDF.

Private Sub CommandButton1_Click()
'Updated by Extendoffice 20221223
    Dim xDlg As FileDialog
    Dim xFolder As Variant
    Set xDlg = Application.FileDialog(msoFileDialogFolderPicker)
    Dim xStrName As String
    If xDlg.Show <> -1 Then Exit Sub
    
    xFolder = xDlg.SelectedItems(1)
    
    xStart = InputBox("file name", "KuTools for Excel", ActiveSheet.Name & ".pdf")

    Application.ScreenUpdating = False

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=xFolder & "\" & xStart, _
            OpenAfterPublish:=False
    Application.ScreenUpdating = True

End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Ich nutze diese Zeilen und das funktioniert auch gut, mein Problem ist nur, sollte diese Datei bereits vorhanden sein, wird diese einfach überschrieben!
Wie kann ich das vermeiden, es sollte eine Meldung kommen, Datei existsiert bereits und es soll bedet werden?
Этот комментарий был сведен к минимуму модератором на сайте
Ich nutze diese Zeilen und das funktioniert auch gut, mein Problem ist nur, sollte diese Datei bereits vorhanden sein, WIRD diese einfach überschrieben!
Wie kann ich das vermeiden, es sollte eine Meldung kommen, Datei existsiert bereits und es soll bedet werden?


Private Sub CommandButton1_Click ()
Приложение.ScreenUpdating = False
Тип ActiveSheet.ExportAsFixedFormat:=xlTypePDF, _
Имя файла:="X:\firmen\Buchhaltung\Rechnungs-Kopie_Ackermann Service GmbH\2022\RK-Abrechnung\" & ActiveSheet.Range("G1") & ".pdf", _
OpenAfterPublish:=Истина
Application.ScreenUpdating = True
End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Саша,
Следующий код VBA может помочь. Пожалуйста, попробуйте.

Private Sub CommandButton1_Click()
'Updated by Extendoffice 20221230
    Dim xPDFName As String
    Dim xPDFPath As String
    Dim xObjFS As Object
    Dim xNum As Integer
    Dim xStr As String
    
    xPDFName = "Export" 'The file name
    xPDFPath = "D:\work\Jan\test\" 'The file path
    Application.ScreenUpdating = True
    On Error Resume Next
    Set xObjFS = CreateObject("Scripting.FileSystemObject")
    xStr = xPDFPath & xPDFName & ".pdf"
    xNum = 1
    If xObjFS.FileExists(xStr) Then
    xResponse = MsgBox("The file already exists, do you want to overwrite it?", vbYesNo, "www.extendoffice.com", "", 0)
       If xResponse <> vbYes Then
       Exit Sub
      End If
    End If
    Application.ScreenUpdating = False
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            FileName:=xStr, _
            OpenAfterPublish:=False
    Application.ScreenUpdating = True
End Sub
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL