分享

如何用VBA 将文件复制到另一个文件夹下并改名

 昵称QAb6ICvc 2017-06-08

如图3-24 所示,在当前工作簿的目录下有两个文件夹。如何利用VBA 将文件夹“文件”内的所有文件复制到另一个文件夹“新文件”中并实现批量改名,将文件之后加上扩展名“.BAK”,从而创建备份?


解决方案

使用Dir 查找该文件夹下的所有文本文件,然后使用FileCopy 语句进行复制,并同时修改文件名。

操作方法

步骤1 按组合键【Alt+F11】打开VBE。

步骤2 选择菜单“插入”→“模块”,输入以下代码后按【F5】键执行:

  1. Sub 批量复制文件并改名()  
  2. '变量声明  
  3. Dim sPathOld As String '源文件夹路径  
  4. Dim sPathNew As String '目标文件夹路径  
  5. Dim sFileNameOld As String '旧文件名  
  6. Dim sFileNameNew As String '新文件名  
  7. '获取源文件夹路径  
  8. sPathOld = ThisWorkbook.Path & "\文件\"  
  9. '获取目标文件夹路径  
  10. sPathNew = ThisWorkbook.Path & "\新文件\"  
  11. '查找源文件夹中的文件  
  12. sFileNameOld = Dir(sPathOld & "*")  
  13. '当查找结果存在时不断循环  
  14. Do While sFileNameOld <> ""  
  15. '设定新文件名  
  16. sFileNameNew = sFileNameOld & ".BAK"  
  17. '复制文件并改名  
  18. FileCopy sPathOld & sFileNameOld, sPathNew & sFileNameNew  
  19. '移动文件  
  20. 'Name sPathOld & sFileNameold As sPathNew & sFileNamenew  
  21. '查找下一个文件  
  22. sFileNameOld = Dir 
  23. Loop  
  24. End Sub 

步骤3 按组合键【Ctrl+G】打开立即窗口,在立即窗口中输入“批量复制文件并改名”后按【Enter】键,即可实现文件的复制。

※FileCopy 语句※

FileCopy 语句可以复制文件并重新命名,其语法为
 

  1. FileCopy source, destination 

其中,参数source 为源文件的完整路径,包括文件路径和文件名。

参数destination 为目标文件的完整路径,包括文件路径和文件名。

当source 指定的文件名与destination 所指定的文件名不相同时,文件可以以destination所指定的文件名保存,即实现改名的功能。

知识扩展

※Name…As 语句※

Name…As 语句可以完成文件重命名或者移动的功能,其语法为
 

  1. Name oldpathname As newpathname 

其中,参数oldpathname 为源文件的完整路径,包括文件路径和文件名。

参数newpathname 为目标文件的完整路径,包括文件路径和文件名。

当oldpathname 所指定的文件路径与newpathname 所指定的文件路径相同时,可以实现文件改名操作。若两者不相同,VBA 将把文件从oldpathname 所指定的文件路径移动至newpathname 所指定的文件路径,并将文件以newpathname 所指定的文件名进行重命名。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多