`
xieyunbiao
  • 浏览: 38477 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

用VBA批量转换Excel工作簿为PDF

阅读更多

    本文转自www.excel123.cn 原文作者 Excel123

    Excel 2010和Excel 2007可以将Excel工作簿另存为PDF格式文件,但手工的方法每次只能转换一个工作簿,要转换多个工作簿就显得有些繁琐。如果没有批量转换软件,在Excel 2010和Excel 2007中,利用VBA代码也可以轻松实现将Excel工作簿批量转换为PDF,方法如下:

    1.按Alt+F11,打开VBA编辑器。

    2.在右侧代码窗口中输入下列代码:

Sub BatchConvertWorkBookToPDF()
Application.DisplayAlerts = False
Application.ScreenUpdating = False

    Dim fDialog As FileDialog
    Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
    Dim vrtSelectedItem As Variant
    Dim wkBook As Workbook
    Dim showFolder  As Boolean
    showFolder = False
    With fDialog
        .Filters.Add "Excel文件", "*.xls; *.xlsx; *.xlsm", 1
        If .Show = -1 Then
            For Each vrtSelectedItem In .SelectedItems
                '如果选择了本工作簿则跳过
                If InStrRev(vrtSelectedItem, ThisWorkbook.Name) = 0 Then
                    On Error Resume Next
                    Set wkBook = Application.Workbooks.Open(vrtSelectedItem, ReadOnly:=True, Password:="")
                    '跳过设置打开密码的工作簿
                    If Not wkBook Is Nothing Then
                       '跳过隐藏的工作簿
                       If Windows(wkBook.Name).Visible = True Then
                       showFolder = True
                       '转换开始
                       wkBook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                          Left(vrtSelectedItem, InStrRev(vrtSelectedItem, ".") - 1) & ".pdf" _
                          , Quality:=xlQualityMinimum, IncludeDocProperties:=False, IgnorePrintAreas _
                          :=True, OpenAfterPublish:=False
                       wkBook.Close , savechanges = False
                       Else
                       wkBook.Close , savechanges = False
                       End If
                    End If
               End If
            Next vrtSelectedItem
            If showFolder Then Call Shell("explorer.exe " & Left(fDialog.SelectedItems(1), _
                InStrRev(fDialog.SelectedItems(1), "")), vbMaximizedFocus)
        End If
    End With
   
    Set fDialog = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

    3.将需要转换的Excel工作簿复制到某个文件夹中。

    4.关闭VBA编辑器返回Excel界面。按Alt+F8打开“宏”对话框,执行“BatchConvertWorkBookToPDF”宏。

    5.在弹出的“浏览”对话框中选择包含要转换工作簿的文件夹,选择所有要转换的工作簿,单击“打开”按钮即可开始转换。

    说明:

    1.已转换的PDF文件位于原工作簿所在的文件夹中,转换完成后会自动打开该文件夹。

    2.不能转换设置了打开密码的工作簿、隐藏的工作簿、隐藏的工作表和包含上述VBA代码的工作簿。

    3.转换的文件类型为“*.xls”、“*.xlsx”、“*.xlsm”。如果要转换其他类型的工作簿,可在代码中添加文件类型。

    4.如果要转换的工作簿具有相同的名称和不同的后缀,如“Book1.xls”和“Book1.xlsx”,则先转换的PDF文件会被覆盖。

    5.Excel2007必需安装用于 2007 Microsoft Office system 的“另存为 PDF 或 XPS”加载项,下载地址http://www.microsoft.com/zh-cn/download/details.aspx?id=7

分享到:
评论

相关推荐

    用VBA批量转换Excel工作簿为.doc

    "用VBA批量转换Excel工作簿为.doc" 该资源提供了一个使用VBA代码批量将Excel工作簿转换为PDF格式文件的解决方案。下面是详细的知识点解释: VBA的应用 VBA(Visual Basic for Applications)是Microsoft Office...

    同一文件夹下面多个Excel批量转换成PDF

    批量转换Excel到PDF的主要知识点包括: 1. **VBA基础**:VBA是一种基于Visual Basic的脚本语言,用于在Office应用程序中编写宏或自动化任务。了解VBA的基础语法,如变量声明、条件语句、循环结构以及函数调用,是...

    Excel工作簿批量转换为PDF

    将Excel工作簿快速、批量转换为PDF电子文档

    Excel-VBA应用:循环将多个工作表另存为PDF的宏代码

    在Excel中,VBA(Visual Basic for Applications)是一种强大的编程工具,可以让我们自动化许多重复性的任务,例如在本例中的“Excel-VBA应用:循环将多个工作表另存为PDF的宏代码”。这个宏功能允许用户批量将工作...

    Excel工作簿批量转换为PDF.7z

    2. **使用宏**:如果"Excel工作簿批量转换为PDF.xlsm"中的宏是用于批量转换,那么用户可以打开这个宏启用的工作簿,按照指示输入待转换的Excel文件路径,运行宏即可一次性将所有指定的Excel文件转换为PDF。...

    基于VBA的EXCEL数据簿和SQL数据库转换处理方法.pdf

    CopyFromRecordset函数将SQL数据库中的查询结果直接复制到Excel工作表中,而BCP(Bulk Copy Program)命令用于将SQL数据库文件导出为CSV格式,并通过VBA调用命令行工具来完成转换。 4. 使用ADO连接数据库:ADO...

    excel批量转化pdf

    1. 打开Excel文件:打开你需要转换的Excel工作簿,确保所有的编辑和格式设置都已完成。 2. 文件另存为PDF:在菜单栏中选择“文件” -> “另存为”,在弹出的对话框中,选择保存类型为“PDF”。 3. 多文件批量转换:...

    Excel VBA基础入门(PDF)

    **2.12 利用VBA设置工作表使用权限** - **方法**: 通过VBA代码限制用户对工作表的操作权限。 - **示例**: 使用WITH语句、对象变量等方法。 **2.13 提高EXCEL中VBA的效率** - **方法**: 减少不必要的对象引用、使用...

    017批量将工作表转换为独立的工作簿共1页.pdf.zip

    这个过程通常被称为“批量将工作表转换为独立的工作簿”。这是一项非常实用的技能,尤其当你处理的数据量大且每个工作表对应不同的主题时。以下就是如何实现这一操作的详细步骤和相关知识点: 1. **准备工作**: ...

    EXCEL转PDF(vba)

    在本教程中,我们将探讨如何利用VBA将Excel工作簿转换为PDF格式,涵盖三种不同场景:转换所有sheet、转换第一个sheet以及转换指定sheet。 首先,让我们了解基本的VBA环境和代码结构。打开Excel,按下Alt + F11键...

    批量转换PPT文件为pdf文件.txt

    根据给定文件的信息来看,实际上该文件描述了一个VBA宏脚本的功能,即批量合并Excel文件,但提供的代码示例却是关于如何使用VBA来批量转换PowerPoint (PPT) 文件为PDF格式的。因此,这里我们将分别针对文档描述中的...

    Excel 生成pdf (Excel自动转化为PDF)

    这个程序的主要任务是设置Excel工作簿的页面布局、指定PDF文件的保存路径和文件名,并调用适当的组件或功能来创建PDF文件。 #### 二、关键技术点解析 1. **使用VBA进行编程:** - VBA是一种用于Office应用程序的...

    VC-Excel.rar_Excel vc_PDF转EXCEL_excel转pdf_vc to pdf_vc++ excel

    4. **Excel转PDF**:在VC++中,可以利用Excel的SaveAs方法将工作簿保存为PDF格式。这要求安装有支持PDF输出的Office版本,或者使用第三方库进行转换。 5. **vc_to_pdf库**:一些开源项目提供了从VC++直接转换到PDF...

    在word通过VBA打开excel数据文件

    3. **打开Excel工作簿**: ```vba Set WK = xlObj.Workbooks.Open("c:\tt.xls") ``` - 使用`Open`方法打开指定路径的Excel文件。 4. **获取Word文档对象**: ```vba Dim doc As Word.Document Set doc = ...

    EXCEL_DONUSTURME_exceltopdf_

    如果你使用的是较新版本的Excel(例如Office 365),还可以通过快速访问工具栏上的“导出”按钮直接将工作表转换为PDF。 三、自动化批量转换 在大量Excel文件需要转换为PDF的情况下,可以利用批处理工具或者VBA宏来...

    从Word表格批量提取数据到Excel.zip

    此时,Word表格会转换为Excel的单元格格式。 二、利用Microsoft Office的数据导入功能 1. 在Excel中,点击“数据”选项卡,选择“自其他源”下的“从文本/CSV”。 2. 引导向导会提示你选择文件,找到你的Word文档...

    excel模版生成pdf

    - 使用VBA(Visual Basic for Applications):Excel内置的VBA编程环境可以编写宏,实现自动化操作,包括将工作簿保存为PDF。用户可以创建一个宏,指定要导出的特定工作表,并设置输出路径和文件名。 - 内置功能:...

    Excel数据批量导入与Excel文件的导出

    1. **另存为**:最基础的方式是使用“文件”菜单的“另存为”选项,可以选择不同的文件格式,如Excel工作簿(.xlsx)、PDF、HTML、CSV等。PDF格式便于阅读和打印,而HTML则适合于网络分享。 2. **导出数据到CSV**:...

    pdf不打开,批量检索张数

    标题“pdf不打开,批量检索张数”所指的是在不打开PDF文件的情况下,需要实现对PDF文档页数的快速批量查询。这通常涉及到PDF处理工具或编程技术,目的是提高工作效率,避免逐一打开大数量的PDF文件来查看其页数。 在...

    excelvba笔记实战教程基础实例.pdf

    宏的存储位置可以选择在当前工作簿、新工作簿或个人宏工作簿中,其中个人宏工作簿可以在任何打开的工作簿中使用,方便在多个文档间共享宏。 学习和掌握Excel VBA不仅能够提高日常工作效率,还能够让你在数据分析、...

Global site tag (gtag.js) - Google Analytics