我已经修改了下面的宏,以便从文件夹A中获取文件,并将它们放在以.pdf作为文件扩展名的文件夹B中:
Sub Xlsm_to_Pdf()
Dim Xlsmfolder As String
Dim PdfFolder As String
Dim fname As String
Dim wBook As Workbook
Application.DisplayAlerts = False
Xlsmfolder = "\\Desktop\Macro Testing\TestFolderA\"
PdfFolder = "\\Desktop\Macro Testing\TestFolderB\"
fname = Dir(Xlsmfolder & "*.xlsm")
Do While fname <> ""
Set wBook = Workbooks.Open(Xlsmfolder & fname, Format:=6, Delimiter:=",")
wBook.SaveAs PdfFolder & Replace(fname, ".xlsm", ".pdf"), ThisWorkbook.FileFormat
wBook.Close False
fname = Dir
Loop
Application.DisplayAlerts = True
End Sub宏按预期执行,文件从文件夹A移动到具有.pdf扩展名的文件夹B。我的问题是文件被损坏了。文件是如何损坏的?宏是如何驱动这个问题的?
发布于 2016-04-26 18:14:07
一些事情..。首先,仅仅更改文件扩展名并不能神奇地将Excel文件转换为PDF文件。但是,作为示例,代码甚至包括对Workbook.SaveAs方法接受文件格式参数这一事实的引用。在线搜索可以快速地引导您找到微软在这个url上提供的有关MSDN的文档。这里详细介绍了可以用于此方法的所有参数。FileFormat参数看起来与您想要研究的完全相同。因此,如果单击文章中的链接(该链接将带您访问MSDN上的相应的xlFileFormat文档),您将看到没有使用该方法以PDF格式保存文件的定义选项。
但是,如果可以在Excel中完成,并通过VBA实现自动化,那么如果您没有在网上或MSDN中进行任何运气搜索,就可以使用一个技巧来查找正确的信息。只需在Excel中记录一个宏,执行您需要帮助的一个步骤,然后停止记录,查看生成的Excel代码并放入宏中。使用这种技术,您应该很快意识到,您正在搜索的方法称为Workbook.ExportAsFixedFormat,并在这个url的MSDN上进行了记录。
https://stackoverflow.com/questions/36869240
复制相似问题