2017-05-26 114 views
0

我写了一个代码,它分配给一个按钮。当按下按钮时,它会创建一个新的工作簿并询问用户在哪里保存新文件。VBA Excel - 当用户取消GetSaveAsFilename弹出框时退出sub

我想确保如果用户单击取消,然后关闭新的工作簿并退出子。

我写下如下,但我不知道如何编写更好的代码。我知道if可以改进。

Option Explicit 

Sub Create_a_new_workbook_and_save_it() 

Dim xlPath As String 

Workbooks.Add 

Application.DisplayAlerts = False 

xlPath = Application.GetSaveAsFilename(Title:="Select where you want to save your file") & "xlsm" 

If xlPath = "Falsexlsm" Then 
    ActiveWorkbook.Close 
    Exit Sub 
End If 

ActiveWorkbook.SaveAs _ 
    Filename:=xlPath, FileFormat:=52 

Application.DisplayAlerts = True 

End Sub 
+0

没有什么特别的毛病'If'声明,因为它是,但如果你不这样做的'Workbooks.Add'直到**在'If'之后**,您可以避免在'If'内执行'ActiveWorkbook.Close'。 – YowE3K

+0

@ YowE3K你是对的。谢谢:) – Marshall

回答

0

上面的代码工作,只要你想细....

+0

我想如果我可以重写if语句在另一个形状。我认为有更好的方式来写它而不是使用'xlPath'。 – Marshall