CopyFile方法
语法:object.CopyFile source, destination, [ overwrite ]
- object: 一个FileSystemObject对象
- source: 原文件
- destination: 新文件文件目录,以\结尾,不能使用通配符
- overwrite: 逻辑值,True覆盖已存在的新文件(默认),如果已存在文件只读,则导致copyfile失败
示例:FileSystemObject.CopyFile "c:\mydocuments\letters\*.doc", "c:\tempfolder\"
注:copyfile看似只支持复制为同文件名和同扩展名的文件
xls 另存为xlsx:方法一
场景:xls是业务系统导出的格式,因为xls格式是2003版格式,不利于数据处理,需要另存为xlsx,使用copyfile方法导致新文件损坏不可用,需要使用其他方法
Sub save_copy_as(oldpath, newpath)
Application.ScreenUpdating = False
Dim xlBook As Excel.Workbook
Set xlBook = Workbooks.Open(oldpath)
ActiveWorkbook.SaveAs Filename:=newpath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
xlBook.Close SaveChanges:=False '解决不能close 文件问题
Application.ScreenUpdating = True
End Sub
不足:
- 没有关闭对应的excel application进程
- 当xls文件大小过大时,此方法打开xls的过程很漫长,或许此方法并非最好的