Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Excel-在用户取消GetSaveAsFilename弹出框时退出sub_Vba_Excel - Fatal编程技术网

VBA Excel-在用户取消GetSaveAsFilename弹出框时退出sub

VBA Excel-在用户取消GetSaveAsFilename弹出框时退出sub,vba,excel,Vba,Excel,我写了一个分配给按钮的代码。当按下按钮时,它将创建一个新工作簿,并询问用户在何处保存新文件 我希望确保如果用户单击“取消”,则会关闭新工作簿并退出子工作簿 我已经写了如下,但我不知道如何写一个更好的代码。我知道if可以改进 Option Explicit Sub Create_a_new_workbook_and_save_it() Dim xlPath As String Workbooks.Add Application.DisplayAlerts = False xlPath =

我写了一个分配给按钮的代码。当按下按钮时,它将创建一个新工作簿,并询问用户在何处保存新文件

我希望确保如果用户单击“取消”,则会关闭新工作簿并退出子工作簿

我已经写了如下,但我不知道如何写一个更好的代码。我知道
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

上面的代码可以正常工作……

如果
If
语句没有什么特别的错误,但是如果您不执行
工作簿。添加
直到
If
之后,您可以避免执行
活动工作簿。关闭
If
内的
If
@YowE3K您完全正确。谢谢:)我想如果我能用另一种形式重写if语句。我认为有更好的方法来编写它,而不是使用“xlPath”。