2014-01-24 31 views
1

说我有多个文件类型的目录,而且我已经设置文件过滤器只显示CSV文件VBA对话防止用户更改分机的FileFilter选项

paths = Application.GetOpenFilename("Comma Separated Values (*.csv),*.csv", _ 
MultiSelect:=True) 

上面的代码并应用过滤器正确。

现在,当我在文件名称编辑框中放置任何过滤器文本并点击打开/输入时,文件扩展名过滤器不再工作/重置到用户的过滤器。

这意味着,如果我有文件名为在打开文件对话框编辑框相同的目录和类型test*test.doctest.csv,无论是Word文档,CSV文件将显示为可选择的。

这是一个错误,有没有办法解决这个问题?也就是说,我希望用户定义的过滤器是预定义过滤器的一个补充。

+0

称之为错误或功能,但它在任何使用Windows文件对话框而不仅仅是Office/VBA的情况下很常见。我认为唯一可以解决的方法是从头开始编写自己的文件选取器... – techturtle

+0

恐怕我还得把它当作一个错误处理 - 用户可能无意中选择错误的文件类型和原因代码中的错误,除非说明,这就是为什么首先有一个过滤器设置的原因。谢谢,只是想知道它是否是有意的行为。 – colintso

回答

1

我想我明白你在问什么。我知道我有这个躺在某个地方的。

这是一个没有穆蒂选择:

fileOpen = Application.GetOpenFilename("Text Files (*.csv),*.csv,Word Files (*.doc),*.doc") 

这是穆蒂选择加标题:

fileOpen = Application.GetOpenFilename("Text Files (*.csv),*.csv,Word Files (*.doc),*.doc", 1, "Pick Your CSV File", , True) 

希望帮助!

+0

我想你可能误解了我 - 我会试着解释清楚一点。当使用Windows文件对话框时,例如在记事本中打开文件,浏览到具有多种文件类型的文件夹。现在输入“*”。所有文件都显示出来了,原来的* .txt过滤器现在被忽略,但它仍然显示为活动状态。我希望在使用VBA中的Windows文件对话框时找到不允许过滤器重置的解决方案。 – colintso