2014-01-24 34 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