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

如何在Excel中使用命令按钮将活动工作表另存为PDF文件?

在Microsoft Excel中工作时,您可能会遇到将活动工作表另存为PDF文件的问题。 在本文中,您可以学习如何通过命令按钮使用VBA代码将活动工作表另存为PDF文件。 并且,如果您还希望将活动工作簿中的范围或每个工作表另存为单独的PDF文件,则本文也可以为您提供帮助。

使用命令按钮将活动工作表另存为带有VBA代码的PDF文件
使用Kutools for Excel轻松将活动或每个工作表另存为单独的PDF文件


使用命令按钮将活动工作表另存为带有VBA代码的PDF文件

您可以运行以下VBA代码,通过单击命令按钮将活动工作表另存为PDF文件。 请执行以下操作。

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应用程序 窗口。 然后关闭 设计模式 在下面 开发商 标签。

现在,单击命令按钮,活动工作表将另存为PDF文件,名为Export,位于指定位置。


使用Kutools for Excel将每个工作表另存为活动工作簿的单独PDF文件

在这里推荐 拆分工作簿 实用程序 Kutools for Excel 轻松将活动工作表另存为PDF文件。 此外,您还可以使用此实用程序将当前工作簿中的每个工作表另存为单独的PDF文件。

申请前 Kutools for Excel首先下载并安装.

1.在工作簿中,您需要将每个工作表另存为单独的PDF文件,然后单击 Kutools 加 > 工作簿 > 拆分工作簿。 看截图:

2。 在里面 拆分工作簿 对话框,请进行如下配置:

2.1)仅在 工作表名称 框;
2.2)选择 PDF(* .pdf) 选项从 保存类型 下拉列表;
2.3)点击 分裂 按钮,然后 选择“文件夹” 弹出对话框,指定保存PDF文件的文件夹;

然后,所选工作表将立即另存为PDF文件。

说明:

1.您可以在“工作表名称”框中检查多个工作表名称,以一次将它们另存为单独的pdf文件;
2.除了将工作表另存为pdf文件之外,您还可以将工作表另存为txt。 或csv。 根据需要归档。

  如果您想免费试用(30-day) 这个实用程序, 请点击下载,然后按照上述步骤进行操作。


演示:使用Kutools for Excel将选择或每个工作表另存为PDF


相关文章:


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (33)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
嗨,如何允许用户输入文件名而不是“Export.pdf”? 谢谢,伊恩
该评论由网站上的主持人最小化
子另存为PDF()
Application.Screen 更新 = False
ActiveSheet.ExportAsFixedFormat 类型:=xlTypePDF,_
Filename:=Application.InputBox("输入文件名")

strExcelPath = "H:\我的文档"

Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
我有一个类似的请求,我希望将文件命名为与选项卡中的特定单元格相同的名称,即:G19(这是发票编号,我希望文件以该名称另存为 PDF)? . 我已经设法让 export.pdf 工作,但这不适用于多次保存。任何想法谢谢
该评论由网站上的主持人最小化
美好的一天,
以下 VBA 代码可以帮助您解决问题。 请在运行代码后在弹出的 Kutoos for Excel 对话框中选择单元格 G19。 感谢您的评论。

私有子 CommandButton1_Click()
将 xRg 调暗为范围
将 xName 调暗为字符串
出错时继续下一步
Application.ScreenUpdating = False
Set xRg = Application.InputBox("选择您将使用单元格值命名 PDF 的单元格:", "Kutools for Excel", Selection.Address, , , , , 8)
如果 xRg 什么都不是,则退出 Sub
xName = xRg(1).Value
ActiveSheet.ExportAsFixedFormat 类型:=xlTypePDF,_
文件名:="C:\PDF\" & xName & ".pdf", _
OpenAfterPublish:=否
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
我更改了D盘的路径,但它没有保存在D盘中。 该怎么办?
该评论由网站上的主持人最小化
嗨 Akshay MN,
如果您修改了上述D盘路径,请确保您的D盘中有一个名为PDF的文件夹。
如果您只想将文件保存在 D 盘而不创建子文件夹,请使用此文件夹路径: "C:\" & xName & ".pdf"
该评论由网站上的主持人最小化
我现在可以使用命令按钮将文件转换为 PDF,但我也可以使用相同的功能来允许每个文件使用不同的名称; 基于现有的数字结构?
该评论由网站上的主持人最小化
嗨兰迪,
抱歉我帮不上忙,欢迎在我们的论坛发表任何问题: https://www.extendoffice.com/forum.html 从我们的专业人员那里获得更多的 Excel 支持。
该评论由网站上的主持人最小化
它显示运行时错误“1004”
该评论由网站上的主持人最小化
嗨,恩泽,
我需要知道你的 Excel 版本。 感谢您的评论。
该评论由网站上的主持人最小化
请在microsoft excel中粘贴编码以另存为pdf按钮
该评论由网站上的主持人最小化
如何为 MS Word 执行此操作? 我有一堆问题,单选按钮选项作为答案。 所以我想创建一个命令按钮,仅在另一个 Word 文档上输出带有所选答案的问题。 我该怎么做呢? 代码真的很有帮助! 如果您需要,我会将文件通过电子邮件发送给您。 谢谢!
该评论由网站上的主持人最小化
美好的一天,
抱歉还不能帮你。
该评论由网站上的主持人最小化
子 ZapiszPDF()
将 sNazwaPliku 调暗为字符串

sNazwaPliku = ActiveSheet.Name

Application.Dialogs(xlDialogSaveAs).Show sNazwaPliku,57

END SUB
该评论由网站上的主持人最小化
我遵循了代码,这就是我所拥有的:

私有子 CommandButton2_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat 类型:=xlTypePDF,_
文件名:=范围(“P2”),_
OpenAfterPublish:=真
Application.ScreenUpdating =真
END SUB

我需要将文件保存到原始文件所在的位置。 还需要一个excel文件的副本以相同的名称保存。
该评论由网站上的主持人最小化
嗨,马特宾利,
该代码完美运行。 感谢你的分享。
该评论由网站上的主持人最小化
你好,

kann jemand mir helfen?

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

私有子 CommandButton1_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat 类型:=xlTypePDF,_
文件名:="C:\PDF\Export.pdf", _
OpenAfterPublish:=否
Application.ScreenUpdating =真
END SUB

谢谢
该评论由网站上的主持人最小化
你好,

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


私有子 CommandButton1_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat 类型:=xlTypePDF,_
文件名:="c:/" & G3 & ".pdf", _
OpenAfterPublish:=否
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
嗨萨沙,
以下代码可以提供帮助。 在应用代码之前,请更改 'C:\Users\Win10x64Test\Documents\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 for Applications 窗口并返回到工作表。
该评论由网站上的主持人最小化
哥达达

是 en voorbeeld excelblad te maken voor de Command-Knop Om Een Actief Werkblad Op Te Slaan Als PDF-Bestand Met VBA-Code 的动画电影。
kom er niet helemaal uit met de codes。
阿尔瓦斯特谢谢
该评论由网站上的主持人最小化
嗨最大,
对不起,我不明白你的意思。 您可能需要附上您正在尝试执行的操作的屏幕截图。 带来不便敬请谅解。
该评论由网站上的主持人最小化
喜队,

只是想知道是否有人可以帮助将创建的文件的目标更改为任何用户的桌面? 我的公司不允许访问 C:,因此脚本无法运行。

非常非常感谢!
该评论由网站上的主持人最小化
嗨,本·斯托达特,
您只需要打开桌面上的任意文件夹并复制地址栏中的文件夹路径,然后将VBA代码中的文件夹路径替换为您复制的路径即可。
这是新的文件名行(请用您自己的用户名替换用户名), 导出.pdf 是 PDF 文件的名称和文件扩展名:
文件名:="C:\Users\用户名\Desktop\PDF\Export.pdf", _
该评论由网站上的主持人最小化
每当我运行它时,它都会将 PDF 保存到保存 Excel 工作表的本地驱动器,如何阻止它自动保存?

私有子 CommandButton1_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat 类型:=xlTypePDF,_
OpenAfterPublish:=真
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
当我运行下面的命令时,它会自动创建一个本地版本的 PDF - 如何阻止它自动保存?

私有子 CommandButton1_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat 类型:=xlTypePDF,_
OpenAfterPublish:=真
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
嗨詹姆斯,
是否要弹出窗口选择手动保存PDF文件的文件夹?
该评论由网站上的主持人最小化
嗨,Crystal,最好是这样,这样我就可以选择保存 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, solte diese Datei bereits vorhanden sein, wird diese einfach überschrieben!
Wie kann ich das vermeiden, es sollte eine Meldung kommen, Datei existiert bereits und es soll beendet werden?
该评论由网站上的主持人最小化
Ich nutze diese Zeilen und das funktioniert auch gut, mein Problem ist nur, solte diese Datei bereits vorhanden sein, WIRD diese einfach überschrieben!
Wie kann ich das vermeiden, es sollte eine Meldung kommen, Datei existiert bereits und es soll beendet werden?


私有子 CommandButton1_Click()
Application.ScreenUpdating = False
ActiveSheet.ExportAsFixedFormat 类型:=xlTypePDF,_
文件名:="X:\firmen\Buchhaltung\Rechnungs-Kopie_Ackermann Service GmbH\2022\RK-Abrechnung\" & ActiveSheet.Range("G1") & ".pdf", _
OpenAfterPublish:=真
Application.ScreenUpdating =真
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   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护