分享

批量将工作簿转换为PDF----2

 Excel实用知识 2022-03-09

图片

Sub ToPdf2()

Application.ScreenUpdating= False

'关闭屏幕更新

'遍历指定文件夹下的所有工作薄--Dir()函数

'Dir[(pathname[,attributes])]

'两个参数都是可选的,attributes表示文件属性。

'返回一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配

'在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。

'dir会返回匹配pathname的第一个文件名,若想得到其他匹配pathname的文件名,再一次调用dir,且不要使用参数。如果已没有合乎条件的文件,则dir会返回一个零长度字符串(''.

'一旦返回零长度字符串,并要再次调用dir时,就必须指定pathname,就会产生错误。不必访问到所有匹配当前pathname的文件名,就可以改变到一个新的pathname上,但是,不能以 _

 递归方式来调用Dir函数。以VBDirectory属性来调用Dir不能连续的返回子目录

Dim fname As String

Dim mypath As String

mypath= ThisWorkbook.Path

fname= Dir(mypath & '\目标文件夹\*.xlsx')

Do While Len(fname) <> 0

    Workbooks.Open mypath & '\目标文件夹\'& fname

     ChDrive 'e:\'      

'设置当前驱动器为E盘即目标文件夹所在的盘符

     ChDir mypath & '\目标文件夹\pdf\' 

'设置PDF文件存储位置,本示例存储在原EXCEL所在文件夹的PDF文件夹中,如无此语句,默认存储在宏工作簿所在路径

'文件另存为PDF,与上例一样

 Workbooks(fname).ExportAsFixedFormatType:=xlTypePDF, Filename:= _

 Left(fname, InStrRev(fname, '.') -1) & '.pdf', Quality:= _

xlQualityStandard,IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

    Workbooks(fname).Close savechanges:=False

fname = Dir() 

'第二次调用dir函数,不带任何参数,则函数返回同一目录下的下一个.xlsx文件

Loop

Application.ScreenUpdating= True

'打开屏幕更新

End Sub

----------------------------------------

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多