vba 中的 OpenFileDialog 以字符串形式返回目录
Posted
技术标签:
【中文标题】vba 中的 OpenFileDialog 以字符串形式返回目录【英文标题】:OpenFileDialog in vba that returns the directory as a string 【发布时间】:2013-04-12 12:37:41 【问题描述】:我一直在到处寻找,我很惊讶这在 VBA 中还不容易作为一个函数使用。
我需要一个函数,当被调用时,它会打开一个文件对话框,人们可以在其中选择 1 个文件(不是更多,只有 1 个),然后该函数将文件的位置(包括文件名+扩展名)作为字符串返回。
起初我想:“这有多难,我在 VB.NET 中真的很简单..”
提前致谢!
【问题讨论】:
【参考方案1】:你的意思是像htis?
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
如果AllowMultiSelect
是True
,则上述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
【讨论】:
你能解释一下“3”和“1”代表什么吗? 很抱歉没有参加客户见面会。我相信这个链接会回答你所有的问题? msdn.microsoft.com/en-us/library/office/…? 您将如何执行此操作以选择文件夹?【参考方案2】:本周早些时候我遇到了同样的问题,我使用的解决方案在这里。
http://www.mrexcel.com/forum/excel-questions/294728-browse-folder-visual-basic-applications.html
希望对你也有帮助。
【讨论】:
这似乎可以工作,除了我收到一个错误,即“Dim fldr As fileDialog”中的“Filedialog”不是现有类型.. 该解决方案使用早期绑定,因此需要您为 Microsoft Office [version] Object Library 设置引用。以上是关于vba 中的 OpenFileDialog 以字符串形式返回目录的主要内容,如果未能解决你的问题,请参考以下文章
OpenFileDialog 在超过 260 个字符的路径上返回空字符串(或根本不返回)
Access 2003 - VBA - 加入两种类型(字符串 = 日期)
C# - 如何自定义 OpenFileDialog 以选择多个文件夹和文件?