重命名提取文件的位置

时间:2017-04-04 12:46:54

标签: excel vba excel-vba

我有一个重命名文件的VBA宏。我有这个文件存在的完整路径,但我想独立于其位置重命名该文件。

Private Sub Workbook_Open()
    Dim sFileName As String, sNewFileName As String

    sFileName = "C:\Users\me\Desktop\text.txt"    
    sNewFileName = "C:\Users\me\Desktop\test1.txt"    
    If Dir(sFileName, 16) = "" Then MsgBox "File not found", vbCritical, "Error": Exit Sub

    Name sFileName As sNewFileName 'rename file

    MsgBox "file has been renamed"
End Sub

我的意思是,如果您使用此Excel文件和text.txt文件提取存档并启动它,它会找到test.txt并将其重命名为独立于其位置。

2 个答案:

答案 0 :(得分:2)

您正在寻找ThisWorkbook.Path,它为您提供了正在使用的工作簿的路径。因此,如果您的txt文件位于同一目录中,则可以使用以下内容:

sFileName = ThisWorkbook.Path & "\text.txt"  
sNewFileName = ThisWorkbook.Path & "\test1.txt"

答案 1 :(得分:0)

当excel文件位置与文本文件位置相同时,您不必编写方向路径。

只需编写没有方向路径的文件名:

sFileName = "test.txt"    
sNewFileName = "test1.txt"