VBA代码大全034:如何用vba重命名文件?

在用vba操作文件的时候,会遇到需要对文件进行重命名的情况。

 

在vba中对文件进行重命名可以用vba内置的Name语句也可以调用FileSystemObject对象进行重命名。

 

本文对这两种方法都将进行介绍。

 

方法一 用Name语句进行文件的重命名

 

Name语句的语法是Name oldpathname As newpathname。

 

其中oldpathname参数表示源文件的位置,newpathname参数表示新的文件所在的位置。其中newpathname参数表示的文件不能是已经存在的。除了重命名文件Name语句还可以重命名文件夹。

 

此外,Name语句不能对已经打开的文件进行重命名,在重命名之前必须先关闭已经打开的文件。

 

用Name语句进行重命名时,如果newpathname参数与oldpathname参数表示的路径不在同一个文件夹,则将移动到新的路径。

 

如下所示的代码分别将重命名并且移动文件以及重命名一个文件夹:

 

Sub QQ1722187970()
 '将C盘的2.txt文件重命名为abc.txt,并且移动到D盘
 Name "c:\2.txt" As "d:\abc.txt"
 '将C盘的test文件夹改为test1文件夹,重命名文件夹只能在同一盘符内
 Name "c:\test" As "c:\test1"
End Sub

 

方法二 调用FileSystemObject对象进行文件的重命名

 

调用FileSystemObject对象进行文件的重命名将采用经典的对象.属性的方式进行文件或文件夹的重命名。它把每一个文件或者文件夹定义为对象,通过修改文件或者文件名的Name属性来重命名。

 

Sub QQ1722187970()
    Dim oFSO
    Dim oFolder
    Dim oFile
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFile = oFSO.GetFile("c:\2.txt")
    '将2.txt的名字重命名为abc.txt
    oFile.Name = "abc"
    Set oFolder = oFSO.GetFolder("c:\test")
    '将文件夹test重命名为test1
    oFolder.Name = "test1"
End Sub

 

与Name语句的不同之处在于,通过属性修改文件的名称,不能移动文件。如果要移动文件,要用FileSystemObject对象的MoveFile方法。

       

发表评论