2013-04-12 35 views
4

我一直在尋找無處不在,我很驚訝,這不是VBA中的一個函數。vba中的OpenFileDialog,以字符串的形式返回目錄

我需要一個函數,當被調用時,打開一個文件對話框,用戶可以在其中選擇1個文件(不多於1個),然後函數以字符串的形式返回文件的位置(包括文件名+擴展名)。

起初我以爲:「怎麼努力也即是,在I'ts VB.NET非常簡單。」

提前感謝!

回答

7

你的意思是像htis?如果AllowMultiSelectTrue

下面是另一個例子,如果僅存在一個文件

Sub Sample() 
    Dim ofD As Object 
    Dim Fil 

    Set ofD = Application.FileDialog(3) 

    ofD.AllowMultiSelect = False 
    ofD.Show 

    For Each Fil In ofD.SelectedItems 
     MsgBox Fil 
    Next 
End Sub 

上面For循環是有用的。

Sub Sample() 
    Dim ofD As Object 
    Dim Fil 

    Set ofD = Application.FileDialog(3) 

    ofD.AllowMultiSelect = False 

    If ofD.Show = False Then 
     MsgBox "User Pressed Cancel" 
    Else 
     MsgBox ofD.SelectedItems(1) 
    End If 
End Sub 
+0

啊謝謝!這似乎工作! – Gutanoth

+0

請您向我解釋「3」和「1」代表什麼? – Gutanoth

+1

對不起,客戶見面。我相信這個鏈接會回答你的所有疑問? http://msdn.microsoft.com/en-us/library/office/aa195878%28v=office.11​​%29.aspx? –

1

本週早些時候,我有同樣的問題在這裏我使用的解決方案。

http://www.mrexcel.com/forum/excel-questions/294728-browse-folder-visual-basic-applications.html

希望它可以幫助你。

+0

這似乎是它可以工作,除了事實,我得到一個錯誤「的FileDialog」中的「暗淡FLDR作爲FileDialog的」不是一個類型.. – Gutanoth

+0

該解決方案使用早期綁定所以需要你爲* Microsoft Office [版本] Object Library *設置參考。 – HansUp

相關問題