2017-04-04 29 views
2

ファイルの名前を変更する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を見つけて、その場所から独立してその名前を変更することを意味し。

+0

申し訳ありませんPALあなたは、ファイルの名前を変更し、名前内で完全なパスを持っていないしたいと言っていますか? – Miguel

+0

はい、私はファイルが抽出された場所をチェクする必要がありますか?しかし、どのように見えるのidk VB –

+0

フレーズ '*それを開始する*'私を心配; Excelアプリケーションインスタンスで開いているファイルの名前を変更しようとしていますか、または閉じたファイルの名前を変更してから、そのファイルを新しい名前で開きますか?前者はできません。名前の変更ではなくSaveAs操作です。 – Jeeped

答えて

2

。だからあなたのtxtファイルは、あなたがこのようなものを使用することができ、同じディレクトリにある場合:

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

ありがとうございました! –

0

Excelファイルの場所がテキストファイルの場所と同じ場合は、方向パスを記述する必要はありません。

ちょうどその方向パスなしでファイル名を書く:あなたはあなたが使用しているワークブックのパスを与えるThisWorkbook.Pathを探している

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

もし私がこのようにすれば、私にファイルが見つからないというエラーが表示されます –

関連する問題