2014-07-01 54 views
2

我想製作一個VBA excel宏,它將加載.mp3文件並重命名它們。當我從我的計算機上的文件夾中加載的文件它工作正常,但我得到這個錯誤:VBA不會從加載文件加載文件,但會從計算機加載。爲什麼?

Runtime error '53': 
File not found 

這是我的代碼是什麼時,它的工作原理:

fileDir = "C:\MyMusic" 
oldFileName = "test.mp3" 
newFileName = "test1.mp3" 
Name fileDir & "\" & oldFileName As fileDir & "\" & newFileName 

這是我的代碼當它不工作(使用閃存驅動器E):

fileDir = "E:\" 
oldFileName = "test.mp3" 
newFileName = "test1.mp3" 
Name fileDir & "\" & oldFileName As fileDir & "\" & newFileName 

我試圖刪除&「\」 &,但STIL我不工作。有任何想法嗎?謝謝!

+0

這可能是一個相當有用的問題,但恕我直言,這個問題需要擴大。你可以在棒上查看和寫入文件嗎?你用什麼來做到這一點?你正在運行的VB程序的權限是什麼。它可以讀取和寫入棒? – octopusgrabbus

+0

由於我是VBA新手,我不知道您需要使用VBA讀取和寫入棒的權限。我如何發現這一點? – MR04

+0

很確定這是因爲你正在通過一個端口,而不是實際的驅動器。溝通處理方式不同。您需要通過端口與USB驅動器「通話」,而不是實際的驅動器。 – asp8811

回答

1

最可能出現的問題根源於文件/目錄權限。以編程方式將文件重命名爲(或複製到)任何不在「您的域名」(即,MyDocuments,MyMusic等)中的文件夾。需要一定的訪問權限。首先,嘗試在任何其他Dir上執行此操作(例如,在「C」驅動器上)並查看它是如何工作的。並且,確保文件路徑中沒有語法錯誤(看起來你的2個語句在這方面是不同的)。希望這會有所幫助,

0

如果您認爲可能存在文件夾權限問題,請嘗試直接在Windows資源管理器中編輯文件名。如果您有權訪問,您應該能夠很快地分辨出來。

任何時候我在VBA中以編程方式處理文件時,都使用了Microsoft腳本運行時。在VBA界面中點擊工具菜單,參考文獻...,然後選中「[x] Microsoft Scripting Runtime」旁邊的複選框。

您可以通過使用類似測試程序化的訪問該文件夾:

Dim FSO as Scripting.FileSystemObject 
Dim SourceFolder as Scripting.Folder 
Dim CurFile as Scripting.File 
Set SourceFolder = FSO.GetFolder("E:\") 
For Each CurFile in SourceFolder.Files 
    MsgBox CurFile.Name 
Next CurFile 

如果你能夠利用顯示消息框中的文件名,你也應該能夠向它分配要改變文件名它與CurFile.Name =「MyNewName.mp3」