本准则正在中途停止

时间:2017-10-27 14:40:48

标签: excel vba excel-vba

当我在一个函数中使用它时,我的下面的代码运行得非常好,现在我将它分成一个不同的函数以获得更好的可读性和更容易的修改,它在函数调用后停止。有谁知道为什么这样做?

            If (Not (Find_First("ERR", Sheets("Consolidated_Data850").Range("G:G")))) Then
                Debug.Print "No data errors found!"
                Call SaveFile(TempFilePath & "ValidPOs.xls")

'                LR = Sheets("Consolidated_Data850").Range("A" & Rows.Count).End(xlUp).row
'                Debug.Print "Saving file to... " & Chr(13) & SaveFilePath & "\ValidPOs.xls"
'                If Dir(SaveFilePath & "\ValidPOs.xls") <> "" Then Kill SaveFilePath & "\ValidPOs.xls"
'                ActiveWorkbook.SaveAs FileName:=SaveFilePath & "\ValidPOs.xls", FileFormat:=51
'                Call GenerateEmail(TempFolder & ValidFileName, _
'                    SaveFilePath & "\ValidPOs.xls", _
'                    Sheets("Consolidated_Data850").Range("A:F" & LR))

                    "(" & MarksFolder & ValidTemplate & ") using Range(" & Range("A:F" & LR).Address & ")"
                Call GenerateEmail(MarksFolder & ValidTemplate, _
                    TempFilePath & "ValidPOs.xls", _
                    Sheets("Consolidated_Data850").Range("A:F" & LR))
            Else
                Debug.Print "Found errors"
            End If

替换上面评论部分的新功能...

Private Sub SaveFile(FileNamePath As String)

    LR = Sheets("Consolidated_Data850").Range("A" & Rows.Count).End(xlUp).row
    Debug.Print "Savingfile to... " & FileNamePath

    If Dir(FileNamePath) <> "" Then Kill FileNamePath
    On Error GoTo ErrHandler:
        Debug.Print "Generating Email (" & TempFilePath & "ValidPOs.xls" & ")" & Chr(13) & _
    ActiveWorkbook.SaveAs FileName:=FileNamePath, FileFormat:=51

Exit Sub

ErrHandler:
    Debug.Print "Error # " & Str(Err.Number) & " was generated " _
        & Err.Source & Chr(13) & "Error Line: " & Erl & Chr(13) & Err.Description
End Sub

一切都很完美,但一旦它离开第二个功能(保存后),它就会停止并且不会继续代码

修改

似乎代码只是停在这里,并且 NOT 调用函数

enter image description here

2 个答案:

答案 0 :(得分:0)

调用SaveFile(TempFilePath&amp;&#34; ValidPOs.xls&#34;)

你确定TempfilePath是一个有效的路径,它以&#34; \&#34;?结尾 如果您单步使用F8,它会在停止之前突出显示End Sub,或者黄色突出显示是否从ActiveWorkbook.saveas中消失而不继续?

检查上次为activeworkbook保存的日期和时间 - 是否实际保存?我的钱在这里出现了一些错误 - 磁盘空间不足,路径无效或类似。但如果不是 - 这是相当随机的,但更换电话 - 只需使用

 var files = db.FileStorage.Find("$/photos/2014/");

(如果你省略了这个电话,请注意没有括号) - 当它在正式语法上失败时,我有时会使用速记。

在响应代码更改时编辑:您需要在错误处理程序之前退出Sub

Private Sub SaveFile(FileNamePath As String)

 SaveFile TempFilePath & "ValidPOs.xls"

End Sub

答案 1 :(得分:0)

在上面的代码中发现了错误...我用来传递到GenerateEmail()函数的范围太广了范围,LR没有被设置为数字而且使用整列而不是 NOT 计算的最后一行

感谢每个人在错误处理和调试方面的帮助!