Vba 将文件扩展名从.tmp重命名为.txt

Vba 将文件扩展名从.tmp重命名为.txt,vba,Vba,我看到有一个filecopy类是文件系统的成员,但我只想更改文件扩展名。是将重命名文件名的类吗?使用此宏,您可以将文件夹中的所有.tmp文件重命名为.txt 请看一下VBA方法: Name语句重命名文件并将其移动到其他位置 目录或文件夹,如有必要。Name可以跨驱动器移动文件, 但它只能在同时存在两个目录或文件夹时重命名现有目录或文件夹 newpathname和oldpathname位于同一驱动器上。姓名不能 创建新文件、目录或文件夹 代码: Sub rename_files() Di

我看到有一个filecopy类是文件系统的成员,但我只想更改文件扩展名。是将重命名文件名的类吗?

使用此宏,您可以将文件夹中的所有
.tmp
文件重命名为
.txt

请看一下VBA方法:

Name语句重命名文件并将其移动到其他位置 目录或文件夹,如有必要。Name可以跨驱动器移动文件, 但它只能在同时存在两个目录或文件夹时重命名现有目录或文件夹 newpathname和oldpathname位于同一驱动器上。姓名不能 创建新文件、目录或文件夹

代码:

Sub rename_files()

    Dim MyFolder As String, MyFile As String, NewName As String, i As Integer

    MyFolder = "C:\Users\User1\Desktop\test_folder\"
    MyFile = Dir(MyFolder & "*.tmp")

    Do While MyFile <> ""
        i = InStrRev(MyFile, ".")
        NewName = Left(MyFile, i - 1) & ".txt"
        Name MyFolder & MyFile As MyFolder & NewName
        MyFile = Dir
    Loop

End Sub
子重命名_文件()
Dim MyFolder作为字符串,MyFile作为字符串,NewName作为字符串,i作为整数
MyFolder=“C:\Users\User1\Desktop\test\u folder\”
MyFile=Dir(MyFolder&“*.tmp”)
当我的文件“”时执行此操作
i=InStrRev(我的文件“.”)
NewName=Left(MyFile,i-1)和“.txt”
将MyFolder和MyFile命名为MyFolder和NewName
MyFile=Dir
环
端接头

我在测试时遇到了一个编译错误。这很奇怪。在这里工作很好<代码>Excel 2010,VBA 7.0.1637可能缺少参考库或其他内容。感谢您的贡献。我建议在这里使用
instrev
而不是
Instr
,因为文件名可能包含多个点,我们必须找到文件扩展名前面的最后一个点。@a.s.H我非常感谢您的提示!谢谢你的信息!只是改进了我的答案。现在它可以处理包含多个点的文件。