Excel 使用ADODB重命名txt文件,而不创建新文件

Excel 使用ADODB重命名txt文件,而不创建新文件,excel,vba,Excel,Vba,我的问题是:我有很多文本文件要重命名。 我一直在使用ADODB.Stream对象来打开/读取/写入文件,因为它们是用UTF-8编码的。因此,现在,如果可能的话,我想重命名这些文件,而不需要复制它们的内容,将它们的内容写入具有所需名称的新文件并删除旧文件。文档上的时间戳对我来说是一个有价值的信息,这就是我不想创建新文件的原因 下面是我当前的解决方法,它创建新文件并删除旧文件。 守则的问题: 1复制的文件具有新的时间戳 2新行不会被复制到新行中。由于它们包含某种XML代码,生成的文件变得难以读取。我

我的问题是:我有很多文本文件要重命名。 我一直在使用ADODB.Stream对象来打开/读取/写入文件,因为它们是用UTF-8编码的。因此,现在,如果可能的话,我想重命名这些文件,而不需要复制它们的内容,将它们的内容写入具有所需名称的新文件并删除旧文件。文档上的时间戳对我来说是一个有价值的信息,这就是我不想创建新文件的原因

下面是我当前的解决方法,它创建新文件并删除旧文件。 守则的问题: 1复制的文件具有新的时间戳 2新行不会被复制到新行中。由于它们包含某种XML代码,生成的文件变得难以读取。我需要写一段代码,在复制后在所有合适的位置上设置新行

        Sub renameModules()
        Dim currentTXT As Variant, newTxt As Variant
        Dim currentPath As String, newPath As String
        Dim currentContent As String
        currentPath = "C:\Users\Me\Desktop\Test\MyCurrent.txt"
        newPath = "C:\Users\Me\Desktop\Test\Target001.txt"

        Set currentTXT = CreateObject("ADODB.Stream")
        currentTXT.Charset = "utf-8"
        currentTXT.Open
        currentTXT.LoadFromFile (currentPath)
        currentContent = currentTXT.ReadText()

        Set newTxt = CreateObject("ADODB.Stream")
        newTxt.Charset = "utf-8"
        newTxt.Open
        newTxt.WriteText currentContent
        newTxt.savetofile newPath, 1

        Kill currentPath

        End Sub
为了简单起见,我只包含了基本步骤,省略了所有错误处理

我的目标是:找到一些方法来简单地重命名当前文件,而不必修改其内容。

无需处理ADODB。Stream:您不仅可以使用VBA命令名重命名文件,还可以将其移动到其他文件夹:

Name currentPath As newPath 

为什么不直接重命名文件呢?看,哇,我觉得自己太笨了,非常感谢你的建议。出于某种原因,我不能将你的帖子标记为答案,因为这只是一条评论。只要马克·芬托马斯的回答是好的;