【问题标题】:Excel API Save As Dialog box issueExcel API 另存为对话框问题
【发布时间】:2010-07-20 17:27:02
【问题描述】:

Excel 2003 API 有一个 GetSaveAsFilename 方法,可以弹出另存为对话框。这需要各种参数,包括文件类型(xls、txt、csv、...),如下所示:

GetSaveAsFilename(Missing.Value, "Microsoft Office Excel 工作簿 (*.xls), *.xls", 1、 缺失值, 缺失值);

我的问题是,我在对话框文件类型下拉列表中只看到“*.xls”。如果我跳过文件类型部分(第二个参数),我只会在其中看到“所有文件 (*.*)”。如何在不创建所有文件类型的长字符串并将其传递给方法的情况下查看包含所有可能文件类型的正常列表?

【问题讨论】:

    标签: c# .net excel vba


    【解决方案1】:

    这里有一个link 可能会有所帮助。相关职位是第三项。这不是一个理想的解决方案(这将是一些恒定的),但它可能是您以编程方式循环通过可用过滤器并构建一个字符串以在 GetSaveAsFilename 中使用的一种方式。

    这是代码的相关部分:

    Sub Main()
    
    'Declare a variable as a FileDialogFilters collection.
    Dim fdfs As FileDialogFilters
    
    'Declare a variable as a FileDialogFilter object.
    Dim fdf As FileDialogFilter
    
    'Set the FileDialogFilters collection variable to
    'the FileDialogFilters collection of the SaveAs dialog box.
    Set fdfs = Application.FileDialog(msoFileDialogSaveAs).Filters
    
    'Iterate through the description and extensions of each
    'default filter in the SaveAs dialog box.
    For Each fdf In fdfs
    
        'Display the description of filters that include
        Debug.Print fdf.Description & " (" & fdf.Extensions & ")," & fdf.Extensions
    
    Next fdf
    
    End Sub
    

    希望这会有所帮助!

    【讨论】:

    • 好的,谢谢。巧合的是,我正在查看那个链接。这应该这样做。我仍然会将此解决方案用作最后的手段,因为它本质上是一种解决方法。谢谢。
    • 没问题。太糟糕了,没有一个常数。似乎浪费了很多打字。祝你好运!
    【解决方案2】:

    你想要Application.Dialogs(xlDialogSaveAs).Show

    Sub showdialog()
        Dim name as string
        name = "test"
        Application.Dialogs(xlDialogSaveAs).Show name 'drop the name parameter 
                                                      'if you don't want to provide 
                                                      'a default name
    End Sub
    

    这将只允许用户保存文件。但是,这将不允许您直接获取他们选择的名称。它将返回一个布尔值,true 表示他们点击了 OK。但是,由于它是“保存”对话框,因此您可以查看他们是否单击了“确定”,然后检查当前文件名。这基本上会告诉您他们将文件保存为什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多