我想创建一个带有过滤器的“另存为”文件对话框,但使用FileDialog类(Microsoft Office 12.0对象库)似乎无法做到这一点。文档实际上提到了这个here,见最后一段,但没有说明为什么?还有另一种方法可以在vb中实现这一目标吗?
我觉得奇怪的是FileDialog类不允许这样做,因为Word,Excel和Access都内置了这个精确的SaveAs功能。
我意识到FileDialog可以创建为允许过滤器的FilePicker(msoFileDialogFilePicker),但是这样就不允许选择一个尚不存在的文件,这会使整个点失败。
答案 0 :(得分:0)
由于某种原因,这似乎是对特定班级的限制,那么如何;
Dim vResult As Variant
vResult = Application.GetSaveAsFilename("default.blah", "blah files,*.blah,Text file,*.txt,All files,*.*", 0, "Title")
If VarType(vResult) = vbBoolean Then
MsgBox "cancelled"
Else
MsgBox vResult
End If
答案 1 :(得分:0)
正如@AlexK提到的,唯一的方法是使用Windows API调用。见here