如何在 VBA 前面板中放置文件路径控件?我希望用户能够选择浏览按钮并选择文件路径,而不是到处放置对话框。我需要用户选择三个或更多文件路径。
5 回答
重新阅读您的 Q 后,您想避开对话框!哦,好吧,我想说
我可以发布关于在 VBA 上使用 MSDIAG 的 hack,它解释了如何修补注册表以使其在 VBA 下使用,而无需安装其他 MS-VB 产品......但我宁愿让你谷歌那个......你可以当然明白为什么。
但是你不想要对话框......你想要控件和按钮:使用列表框!要填充您的列表框,请使用Dir命令(使用列表框的additem方法)。实现这一目标的两个阶段:
- 首先获取目录(并在将其添加到列表框之前添加“->”或其他前缀,以便用户了解这不是文件);
- 然后获取文件名(您可以使用 Dir 的参数按扩展名过滤,就像在 DOS 中一样)。
最后,在列表框的 OnClick 和 OnDoubleClick 下,您必须解释列表框的默认属性(Item),检查“->”并使用 ChDir 更改目录并重新填充,否则您将选择文件。
写起来比代码复杂得多……相信我。
您是指 Microsoft Office 的 VBA 还是一般的 VBA?
在办公室,Application.FileDialog(msoFileDialogOpen)
.
否则,请查看 Win32 API 函数SHBrowseForFolder
(在 shell32.dll 中)。Declare Function
您可以使用关键字将其导入 VBA 以供使用。
没有直接的 VBA 功能。您可以决定将表单(Access 表单或通用 microsoft 表单)与 2 个控件组合:(1) 文本框 (2) 浏览按钮(最终将使用 fileDialog 命令或 windows API)。
也许从 Microsoft MVPs 站点浏览文件夹 API 将适合:
http://www.mvps.org/access/api/api0002.htm
它使用 fwzgekg 提到的 SHBrowseForFolder,并且不返回文件对话框,它返回可浏览的文件夹列表。
这是你想要的吗?
FilePath = Application.GetOpenFilename