【发布时间】:2014-02-14 21:48:38
【问题描述】:
假设我有一个包含多种文件类型的目录,并且我已经将文件过滤器设置为仅显示 CSV 文件
paths = Application.GetOpenFilename("Comma Separated Values (*.csv),*.csv", _
MultiSelect:=True)
上面的代码确实正确地应用了过滤器。
现在,当我在文件名编辑框中输入任何过滤器文本并点击打开/输入时,文件扩展名过滤器不再起作用/被重置为用户的过滤器。
这意味着如果我在同一目录中有名为 test.doc 和 test.csv 的文件并在打开文件对话框编辑框中键入 test*,则 Word 文档和 CSV 文件都将显示为可选择的。
这是一个错误吗?有没有办法解决这个问题?也就是说,我希望用户定义的过滤器成为预定义过滤器的补充。
【问题讨论】:
-
将其称为错误或功能,但它在使用 Windows 文件对话框的任何事物中都很常见,而不仅仅是 Office/VBA。我认为您可以解决它的唯一方法是从头开始编写自己的文件选择器......
-
恐怕我不得不把它当作一个错误来对待 - 用户可能会无意中选择文件类型错误的文件并导致代码错误,除非考虑到这一点,这就是设置过滤器的原因首先。谢谢,只是想知道这是否是预期的行为。
标签: vba openfiledialog filefilter