【问题标题】:Renaming files with VBA使用 VBA 重命名文件
【发布时间】:2015-09-03 19:35:00
【问题描述】:

我在重命名 vba 中的文件时遇到问题。

我只知道文件名的一部分,例如它以happy开头。我希望能够将此文件重命名为我想要的任何名称。只会有一个名为happy* 的文件。我有下面的代码,但它在 Name ffile As NewName 上给了我一个“找不到文件”错误

Sub ReNaming()

Dim ffile As String

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


End Sub

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

任何帮助都会很棒。

谢谢

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    最好尽可能具体和详尽。

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

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

    【讨论】:

      【解决方案2】:

      问题是Dir() 返回文件名而不是完整路径。您可以将Debug.Print ffile 放在Dir 之后,看看它会返回什么。如果该文件在您运行 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
      

      【讨论】:

        猜你喜欢
        • 2022-01-23
        • 2018-04-01
        • 2021-05-24
        • 2020-03-23
        • 2018-08-01
        • 1970-01-01
        相关资源
        最近更新 更多