用VBA重命名文件

我有问题重新命名文件在VBA中。

我只知道文件名的某个部分,例如它开始于开心。 我希望能够将这个文件重命名为任何我想要的。 只有一个名为happy *的文件。 我有下面的代码,但它给我一个名为ffile作为NewName“File not found”错误

Sub ReNaming() Dim ffile As String ffile = Dir("h:\folder1\happy*") NewName = "yellow.xlsx" Name ffile As NewName End Sub 

我知道这可能不是正确的做法,但问题的通配符部分导致所有问题!

任何帮助将是伟大的。

谢谢

问题是, Dir()返回文件名,但不是完整的path。 您可以在Dir之后放置Debug.Print ffile来查看返回的内容。 如果该文件不存在于正在运行VBA脚本的目录中,则会出现该错误。 你可以做这样的事情:

 Sub ReNaming() Dim ffile As String Dim pathname As String pathname = "h:\folder1\" ffile = Dir(pathname & "happy*") ffile = pathname & ffile NewName = "yellow.xlsx" Name ffile As pathname & "NewName" 'or just "NewName" if you *want* to change the folder End Sub 

你可以提供可用的信息,这可能是最好的具体和彻底。

 ffile = Dir("h:\folder1\happy*.xlsx") NewName = "yellow.xlsx" Name "h:\folder1\" & ffile As "h:\folder1\" & NewName 

尽pipe.xlsx不是必需的,但是将任何不是.xlsx工作簿的任何内容重命名为.xlsx工作簿是没有意义的。