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方法导致新文件损坏不可用,需要使用其他方法

  1. Sub save_copy_as(oldpath, newpath)
  2. Application.ScreenUpdating = False
  3. Dim xlBook As Excel.Workbook
  4. Set xlBook = Workbooks.Open(oldpath)
  5. ActiveWorkbook.SaveAs Filename:=newpath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
  6. xlBook.Close SaveChanges:=False '解决不能close 文件问题
  7. Application.ScreenUpdating = True
  8. End Sub

不足:

  1. 没有关闭对应的excel application进程
  2. 当xls文件大小过大时,此方法打开xls的过程很漫长,或许此方法并非最好的