Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用排除过滤器打开文件对话框(Excel VBA)_Vba_Excel_Csv - Fatal编程技术网

使用排除过滤器打开文件对话框(Excel VBA)

使用排除过滤器打开文件对话框(Excel VBA),vba,excel,csv,Vba,Excel,Csv,我目前正在为Excel编写一个小脚本来导入csv文件。因此,我集成了一个带有csv过滤器的打开文件对话框 With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Title = "Datei wählen" .InitialFileName = "c:\test\*.csv" .Show If .SelectedItems.Count > 0 T

我目前正在为Excel编写一个小脚本来导入csv文件。因此,我集成了一个带有csv过滤器的打开文件对话框

 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
到目前为止,这对我来说还不错。但不幸的是,我有不同类型的csv文件,比如

  • file.csv
  • test.csv
  • 文件1.csv
  • lala_2.csv
我可以这样修改我的过滤器吗?他只显示在“.csv”前面没有“#”的文件吗

谢谢你的帮助。 祝福


Stefan

不幸的是,您在这里的权限非常有限,只能使用不允许排除字符的通配符
*

您可以使用如下过滤器:

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\uu
开头的CSV文件,但这是最好的方法


请参见Microsoft网站上的

AFAIK,
FileDialog。过滤器
仅支持
*
通配符。如果这是一项要求,那么设计您自己的文件对话框可能是唯一的选项。对于
.Filters
来说,非常确定它只是
*
-使用
会出现运行时错误“无效的过程调用或参数”。@cointern这些是针对
InitialFileName
属性的,我已成功使用
.InitialFileName=“c:\test\test\u?.csv”
和名为
test\u 1.csv
的文件进行了测试。我没有试过使用
过滤器,这里似乎没有必要,但OP询问的是过滤器。@Stefan实际上你的问题是只显示没有
\u35;
的文件,而你的评论则相反?您可以使用
test.*.csv
但可以获取任何带有此前缀的文件,甚至
test.*aaaa.csv
@GôTô您的权利这是一个更一般的问题。你用“*”代替“?”的建议很有效。谢谢。不过,如果能在这里使用正则表达式,那就太好了:-)无论如何,再次感谢您的帮助。