Excel VBA保存代码导致多个保存对话框

时间:2016-03-04 07:19:17

标签: excel vba excel-vba

我一直在尝试找到一种方法来为特定的Excel电子表格设置默认保存选项,其中打开默认文件位置,对话框中显示建议的文件名,默认文件类型是启用宏的工作簿(* .XLSM)。

我从研究中得出以下两个解决方案;但是,两个似乎都给我一个问题,其中三个保存对话框相互打开。
具体来说,单击保存按钮时,保存对话框将在正确的位置(“我的文档/ exceltests”)和正确的文件名(“AAAA”)打开。然后单击“保存”按钮,提示另一个保存对话框以完全相同的属性打开。单击此对话框上的“保存”后,工作簿将保存在正确的位置。但是,第三个对话框也会在“我的文档”的默认位置打开。

代码示例1

$s_date = '03/04/2016'.' '.date('h:i:s');
echo date('Y-m-d',strtotime($s_date));

代码示例2

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
With Application.FileDialog(msoFileDialogSaveAs)


.InitialFileName = "C:\My Documents\exceltests\AAAA"
 .FilterIndex = 2

 If .Show Then
     ActiveWorkbook.SaveAs Filename:=.SelectedItems(1), _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled
End If
End With

End Sub

如果有人知道为什么会发生这种情况和/或如何修复它,我将非常感激。

1 个答案:

答案 0 :(得分:0)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

With Application.FileDialog(msoFileDialogSaveAs)
    Application.EnableEvents = False
    .InitialFileName = "C:\My Documents\exceltests\AAAA"
    .FilterIndex = 2
    If .Show Then
        ActiveWorkbook.SaveAs Filename:=.SelectedItems(1), _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End If
    Application.EnableEvents = True
End With

Cancel = True

End Sub