使用排除过滤器打开文件对话框(Excel VBA)
我目前正在为Excel编写一个小脚本来导入csv文件。因此,我集成了一个带有csv过滤器的打开文件对话框使用排除过滤器打开文件对话框(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
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
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ô您的权利这是一个更一般的问题。你用“*”代替“?”的建议很有效。谢谢。不过,如果能在这里使用正则表达式,那就太好了:-)无论如何,再次感谢您的帮助。