示例
如图所示,如何利用VBA将文件夹“文件”内的所有文件复制到另一个文件夹“新文件”中并实现批量改名,将文件之后加上扩展名“.BAK”,从而创建备份?
Option Explicit
Sub 复制文件并改名()
Dim sPathOld As String '源文件
Dim sPathNew As String
Dim sFileNameOld As String
Dim sFileNameNew As String
'获取源文件平路径
sPathOld = ThisWorkbook.Path & "\文件\"
sPathNew = ThisWorkbook.Path & "\新文件\"
'查找源文件夹的文件
sFileNameOld = Dir(sPathOld & "*")
'找到结果是循环
Do While sFileNameOld <> ""
'设定新文件名
sFileNameNew = sFileNameOld & ".bak"
'复制文件并改名
FileCopy sPathOld & sFileNameOld, sPathNew & sFileNameNew
'查找下一个文件
sFileNameOld = Dir
Loop
End Sub
FileCopy语句
FileCopy语句可以复制文件并重新命名,其语法为
FileCopy source, destination
- 参数source为源文件的完整路径,包括文件路径和文件名。
- 参数destination为目标文件的完整路径,包括文件路径和文件名。
当source指定的文件名与destination所指定的文件名不相同时,文件可以以destination所指定的文件名保存,即实现改名的功能。
Name---As语句
Name---As语句可以完成文件重命名或者移动的功能,其语法为
Name oldpathname As newpathname
- 参数oldpathname为源文件的完整路径,包括文件路径和文件名。
- 参数newpathname为目标文件的完整路径,包括文件路径和文件名。
当oldpathname所指定的文件路径与newpathname所指定的文件路径相同时,可以实现文件改名操作。若两者不相同,VBA将把文件从oldpathname所指定的文件路径移动至newpathname所指定的文件路径,并将文件以newpathname所指定的文件名进行重命名。