2009-12-30 10 views
0

问候一个和所有 - 一个圣诞节难题,任何人仍然看着这个网站...这工程,但如果我决定取消过程(即不保存文件,并在这个阶段停止进程)它不会损害文件,但下面的marco(filltolastrow2)仍然激活,我怎么能阻止这种情况发生?我如何让我的宏停止,如果我取消保存副本

Public Sub SaveaCopyIncomeSheet() 
    Dim file_name As Variant 
    file_name = Application.GetSaveAsFilename("Overdue Report - Draft", filefilter:="Excel Files(*.xls),*.xls") 
    If file_name <> False Then 
     ActiveWorkbook.SaveAs Filename:=file_name 
     MsgBox "File Saved!" 
    End If 
    filltolastrow2 
End Sub 

回答

2

你可能想

If file_name <> False Then 
    ActiveWorkbook.SaveAs Filename:=file_name 
    MsgBox "File Saved!" 
    filltolastrow2 
End If 
0

备选:

Public Sub SaveaCopyIncomeSheet() 
    Dim file_name As Variant 
    file_name = Application.GetSaveAsFilename("Overdue Report - Draft", filefilter:="Excel Files(*.xls),*.xls") 

    If file_name = False Then GoTo E_NoFileName 

    ActiveWorkbook.SaveAs Filename:=file_name 
    MsgBox "File Saved!" 
    filltolastrow2 

Exit Sub 
E_NoFileName: 
    MsgBox "File Not Saved" 
End Sub 
+0

这是或多或少的如何不使用 “转到” 的一个例子。我很肯定你听说过“If - Then - Else”;-) – 2009-12-30 12:47:22

+0

嗯,你是对的我会将它编码为你的解决方案(因此“Alternative:”),但我喜欢展示一些变体。该解决方案不是非法的,不会使代码更难理解,并且很简单,所以我叮叮当当地确定:) – marg 2009-12-30 13:03:08

相关问题