关闭文件时的Excel内置对话框

关闭文件时的Excel内置对话框,excel,vba,dialog,Excel,Vba,Dialog,我指的是 其中一个答案给出了一个非常优雅的解决方案,它显示了一个对话框,该对话框是用简单的命令“MsgBox”创建的 现在,我想知道是否有可能通过显示Excel内置对话框(关闭工作簿时显示)实现更优雅的解决方案。用途:显示与所有其他对话框具有相同“外观”的拨号框,相同语言,相同 我做了一些研究,但只找到了“另存为”对话框 Application.Dialogs(xlDialogSaveAs).Show 显示对话框后,显然需要获取已单击的按钮,以继续前面提到的问题中的宏。我认为您实际需要的是应用

我指的是

其中一个答案给出了一个非常优雅的解决方案,它显示了一个对话框,该对话框是用简单的命令“MsgBox”创建的

现在,我想知道是否有可能通过显示Excel内置对话框(关闭工作簿时显示)实现更优雅的解决方案。用途:显示与所有其他对话框具有相同“外观”的拨号框,相同语言,相同

我做了一些研究,但只找到了“另存为”对话框

Application.Dialogs(xlDialogSaveAs).Show

显示对话框后,显然需要获取已单击的按钮,以继续前面提到的问题中的宏。

我认为您实际需要的是
应用程序。GetSaveAsFilename

这将显示“另存为”对话框,如果用户选择“确定”,则返回文件名;如果用户选择“X”或“取消”,则返回False

应该注意的是,这只是显示对话框并获取交互的详细信息,实际上不会保存文件。因此,您必须使用返回值在代码中实现这一点



问题是什么?从字里行间看,我想他是在问你如何得到所选按钮的值。显然需要获得已单击的按钮,据我所知,要继续宏,您无法使用
Application.Dialogs(xlDialogSaveAs).Show来获取返回值。但是你是对的@mehow,这个问题不是很清楚
Sub test()

Dim ans As Variant
Dim msg As String

ans = Application.GetSaveAsFilename

    If ans = False Then
    msg = "Action was cancelled"
    Else
    msg = "File Path is: " & ans
    End If

MsgBox msg, vbInformation, "Save As Result"

End Sub