4

如何在 VBA 前面板中放置文件路径控件?我希望用户能够选择浏览按钮并选择文件路径,而不是到处放置对话框。我需要用户选择三个或更多文件路径。

4

5 回答 5

3

重新阅读您的 Q 后,您想避开对话框!哦,好吧,我想说

我可以发布关于在 VBA 上使用 MSDIAG 的 hack,它解释了如何修补注册表以使其在 VBA 下使用,而无需安装其他 MS-VB 产品......但我宁愿让你谷歌那个......你可以当然明白为什么。

但是你不想要对话框......你想要控件和按钮:使用列表框!要填充您的列表框,请使用Dir命令(使用列表框的additem方法)。实现这一目标的两个阶段:

  • 首先获取目录(并在将其添加到列表框之前添加“->”或其他前缀,以便用户了解这不是文件);
  • 然后获取文件名(您可以使用 Dir 的参数按扩展名过滤,就像在 DOS 中一样)。

最后,在列表框的 OnClick 和 OnDoubleClick 下,您必须解释列表框的默认属性(Item),检查“->”并使用 ChDir 更改目录并重新填充,否则您将选择文件。

写起来比代码复杂得多……相信我。

于 2009-03-16T10:42:19.700 回答
2

您是指 Microsoft Office 的 VBA 还是一般的 VBA?

在办公室,Application.FileDialog(msoFileDialogOpen).

否则,请查看 Win32 API 函数SHBrowseForFolder(在 shell32.dll 中)。Declare Function您可以使用关键字将其导入 VBA 以供使用。

于 2008-11-05T10:41:34.157 回答
1

没有直接的 VBA 功能。您可以决定将表单(Access 表单或通用 microsoft 表单)与 2 个控件组合:(1) 文本框 (2) 浏览按钮(最终将使用 fileDialog 命令或 windows API)。

于 2008-11-05T12:46:40.300 回答
1

也许从 Microsoft MVPs 站点浏览文件夹 API 将适合:

http://www.mvps.org/access/api/api0002.htm

它使用 fwzgekg 提到的 SHBrowseForFolder,并且不返回文件对话框,它返回可浏览的文件夹列表。

于 2008-11-05T21:32:03.703 回答
1

这是你想要的吗?

FilePath = Application.GetOpenFilename
于 2010-09-22T15:08:32.353 回答