2013-04-12 56 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

相关问题