这是从我的数据库中的东西。我一直在使用它已经有一段时间了,现在是VBA。此代码是而不是,我很久以前在网络上发现它。
Sub Sample()
ret = BrowseForFolder("C:\")
End Sub
Function BrowseForFolder(Optional OpenAt As Variant) As Variant
Dim ShellApp As Object
Set ShellApp = CreateObject("Shell.Application"). _
BrowseForFolder(0, "Please choose a folder", 0, OpenAt)
On Error Resume Next
BrowseForFolder = ShellApp.self.Path
On Error GoTo 0
Set ShellApp = Nothing
Select Case Mid(BrowseForFolder, 2, 1)
Case Is = ":"
If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
Case Is = "\"
If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
Case Else
GoTo Invalid
End Select
Exit Function
Invalid:
BrowseForFolder = False
End Function
在我看来,你已经在做的是最好的方法。一个(复杂的)替代方案是使用SHBrowseForFolder API函数,这是我很久以前使用的:http://allapi.mentalis.org/apilist/SHBrowseForFolder.shtml – markblandford 2012-02-22 17:24:52
+1好问题 – 2012-02-22 18:40:56