2017-01-04 9 views
1

現在、Excel用の小さなスクリプトを作成して、csvファイルをインポートしています。したがって、開いたファイルダイアログをcsvフィルタに統合しました。フィルタを除外するファイルダイアログ(Excel VBA)

With Application.FileDialog(msoFileDialogFilePicker) 
    .AllowMultiSelect = True 
    .Title = "Datei wählen" 
    .InitialFileName = "c:\test\*.csv" 
    .Show 

    If .SelectedItems.Count > 0 Then 
     'do something 
    End If 
End With 

これまでのところ、これはうまく動作します。しかし残念ながら、私は

  • file.csvになり
  • のtest.CSVのように、CSVファイルの種類を持っている
  • file_1.csv
  • lala_2.csv
  • ...

この方法でフィルタを修正できますか?彼は '.csv'の前に '_#'がないファイルのみ表示しますか?

ありがとうございました。 お祈り申し上げます

ステファン

+0

AFAIK、 'FileDialog.Filters'は' * 'ワイルドカードのみをサポートしています。これが必要な場合は、独自のファイルダイアログを設計することが唯一の選択肢かもしれません。 – Comintern

答えて

1

残念ながら、あなたは非常にここに限定されているのみワイルドカード文字を除外することはできません*?を使用することができます。

With Application.FileDialog(msoFileDialogFilePicker) 
    .AllowMultiSelect = True 
    .Title = "Datei wählen" 
    .InitialFileName = "c:\test\test_*.csv" 
    .Show 

    If .SelectedItems.Count > 0 Then 
     'do something 
    End If 
End With 

test_で始まるすべてのCSVファイルを取得するにはそれはあなたができる最善だ:

あなたは、このようなフィルタを持つことができます。

マイクロソフトのウェブサイトのdocを参照してください。

+0

'.Filters'は' * 'のみで、'? 'を使うと実行時エラー" Invalid procedure call or argument "が発生します。 – Comintern

+0

@Cominternこれらは 'InitialFileName'プロパティ用です。' .InitialFileName = "c:\ test \ test _?。csv" 'と' test_1.csv'という名前のファイルで正常にテストされています。私はここでは必要でないと思われる「フィルタ」を試していません –

+0

右ですが、OPはフィルタについて質問していました。 – Comintern

関連する問題