2016-02-29 42 views
1

我試圖用(*)符號使用dir函數來自動完成部分路徑名(在本例中:Deskt - > Desktop) 這是我試過的代碼,但它說我有一個語法錯誤:不能使用帶字符串變量的dir函數和(*)符號

Sub check() 
    Dim folderpath As String 
    folderpath = "C:\Users\levs\Deskt" 
    MsgBox (Dir(folderpath*, vbDirectory)) 
End Sub 

但是,如果我寫的代碼,而無需使用變量,它會工作:

MsgBox (Dir("C:\Users\levs\Deskt*", vbdirectory) 

那麼,有可能使用這個函數的變量?

非常感謝!

回答

0

這更是一個語法比另一件東西......

如果你 folderpath = "myPath"則變量FOLDERPATH是一個字符串,現在如果你這樣做FOLDERPATH *,那麼你使用的是一元運算符轉換爲一個包含字符串的變量...

考慮到將字符串與「*」...() 在某些語言中連接的操作完全不同操作可能是乘法運算符,但在其他更復雜的東西像一個指針...

解決方法:

做拼接正確,如更換 MsgBox (Dir(folderpath*, vbDirectory))

MsgBox (Dir(folderpath&"*", vbDirectory)) 

或事件更好地做好在聲明中級聯...

您的最後一個方法應該是這樣的:

Sub check() 
Dim folderpath As String 
    folderpath = "C:\Users\levs\Deskt*" 
    MsgBox (Dir(folderpath, vbDirectory)) 
End Sub 
+0

你能解釋一下嗎? – Lev

+0

非常感謝。 – Lev

+0

不客氣! –

1

您需要進一步建立字符串:

MsgBox (Dir(folderpath & "*", vbDirectory)) 
+0

非常感謝! – Lev

0

您需要widlcard串聯和您的文件夾路徑

sub check() 
    Dim folderpath As String 
    folderpath = "C:\Users\levs\Deskt" 
    MsgBox (Dir(folderpath & "*", vbDirectory)) 
End Sub