EXCEL使用VBA一键批量转换成PDF

EXCEL使用VBA一键批量转换成PDF

上图是给定转换路径

python 复制代码
Sub 按钮1_Click()
Dim a(1 To 1000) As String
Dim a2 As String
Dim myfile As String
Dim wb As Workbook
a2 = Trim(Range("a2"))
    myfile = Dir(a2 & "\" & "*.xls")
    k = 0
    Do While myfile <> "" '不为空的时候 往下循环
        k = k + 1
        a(k) = myfile '写入第一个文件
        myfile = Dir
    Loop
    MkDir a2 & "\转换后\"
    For i = 1 To 1000
    If a(i) <> "" And a(i) <> "批量转换成PDF.xlsm" Then
     Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Workbooks.Open Filename:=a2 & "\" & a(i)
    Set wb = ActiveWorkbook
    Na = a(i)
    gw = Left(Na, Application.Find(".", Na) - 1) & ".pdf"
    Workbooks(Na).ExportAsFixedFormat Type:=xlTypePDF, Filename:=a2 & "\转换后\" & gw, Quality:=xlQualityStandard
    wb.Close
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Else
    Exit For
    End If
    Next i
End Sub
'Sub ExportToPDF()
'
'Dim Arr, Str1, Str2, Shp, myPath1, myPath2, MyPos, Na, Sh, i1, i2
'
'On Error Resume Next               '忽略运行中可能出现的错误
'
'Application.ScreenUpdating = False '关闭工作表更新,提高运行速度
'
'Application.DisplayAlerts = False  '忽略报警提示
'
'Arr = Array(".xls", ".xlsx", ".xlsm")  'Excel格式集合
'
'myPath1 = "C:\Users\Andre\Desktop\批量转换PDF\"        '源文件路径
'
'myPath2 = myPath1 & "EFGH\"  '导出路径
'
'MkDir myPath2                '新建文件夹
'
'Set fs = CreateObject("Scripting.FileSystemObject") '计算机文件访问
'
'Set fo = fs.GetFolder(myPath1)  '获取文件夹
'
'
'
'For Each fi In fo.Files  '扫描文件夹里面的每一个文件
'
' i1 = 0
'
' i2 = 0
'
' Na = fi.Name  '获取文件名称
'
' Do
'
'  i1 = MyPos   '寄存上次获取"."的位置
'
'  i2 = i2 + 1
'
'  MyPos = InStr(MyPos + 1, Na, ".") '获取"."存在的位置
'
'  If MyPos = 0 And i2 <> 1 Then
'
'   Str1 = Right(Na, Len(Na) - i1 + 1) '截取后缀名
'
'   Str2 = Left(Na, i1 - 1) & ".pdf"   '生成新的PDF文件名称
'
'   'If UBound(Filter(Arr, Str1)) = 0 Then  '如果是Excel格式的文件,则
'
'    Workbooks.Open Filename:=myPath1 & Na '打开Excel文件
'
'    For Each Sh In Workbooks(Na).Sheets   '扫描每张工作表
'
'     Sh.PageSetup.Zoom = 80  '工作表打印区域设定成80%
'
'    Next
'
'    Workbooks(Na).ExportAsFixedFormat Type:=xlTypePDF, Filename:=myPath2 & Str2, Quality:=xlQualityStandard
'
'    '输出PDF文件
'
'    Workbooks(Na).Close '关闭工作表
'
'   'End If
'
'   Exit Do  '退出Do循环
'
'  End If
'
' Loop
'
'Next
'
'Application.DisplayAlerts = True   '恢复报警提示
'
'Application.ScreenUpdating = True  '恢复更新显示
'
'
'
'End Sub
相关推荐
java1234_小锋1 小时前
Java高频面试题:BIO、NIO、AIO有什么区别?
java·面试·nio
用户8307196840822 小时前
Java IO三大模型(BIO/NIO/AIO)超详细总结
java
sheji34162 小时前
【开题答辩全过程】以 基于SSM的花店销售管理系统为例,包含答辩的问题和答案
java
Mr_sun.2 小时前
Day09——入退管理-入住-2
android·java·开发语言
MAGICIAN...2 小时前
【java-软件设计原则】
java·开发语言
JH30732 小时前
为什么switch不支持long
java
CodeKwang2 小时前
Qt实战:简易Excel表格 | 附完整源码
qt·excel·qtabwidget·qt控件
盐真卿2 小时前
python第八部分:高级特性(二)
java·开发语言
上海合宙LuatOS3 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
汤姆yu3 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端