没有错误发生时执行错误处理程序

时间:2012-12-20 15:06:27

标签: excel excel-vba vba

发生错误时,下面的错误处理程序可以正常工作。但是,当没有错误时,它会正确跳过它,但是当它应该被忽略时它会执行ErrHandler:部分中的代码。谁能告诉我我做错了什么,拜托?

Sub PopulateDynamicReport()

Dim getcolumnPDR As Range
Dim getFieldDescriptionPDR As String
Dim getFormulaPDR As Variant
Dim columnletter As String
Dim myrange As String

Sheets("Config").Select

Cells.Find(What:="Field Description", after:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, searchorder:=xlByRows, searchdirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Offset(1, 0).Activate

Do
    If ActiveCell <> "" Then

        Set getcolumnPDR = getcolumn
        getFieldDescriptionPDR = getFieldDescription

        If ActiveCell.Offset(0, 1) = "Not Applicable" Then

            getFormulaPDR = ""

            On Error GoTo ErrHandler

            Sheets("Dynamic Report").Cells.Find(What:=getFieldDescriptionPDR, after:=ActiveCell, LookIn:= _
            xlFormulas, LookAt:=xlPart, searchorder:=xlByRows, searchdirection:= _
            xlNext, MatchCase:=False, SearchFormat:=False).EntireColumn.Copy getcolumnPDR

            On Error GoTo 0

            ActiveCell.Offset(1, 0).Activate

        Else
            getFormulaPDR = getFormula
            columnletter = ActiveCell.Offset(0, -1)

            ActiveCell.Offset(0, 1).Copy Sheets("Pricing Analysis").Cells(FindLastRow, columnletter)
            Sheets("Pricing Analysis").Activate
            Cells(FindLastRow, columnletter).Activate
            ActiveCell.Copy
            Range(Selection, Selection.End(xlUp)).Select
            Selection.FillUp
            Application.CutCopyMode = False

            Sheets("Config").Activate

            ActiveCell.Copy getcolumnPDR.End(xlUp)

            Sheets("Pricing Analysis").Activate

            getcolumnPDR.EntireColumn.AutoFit
            getcolumnPDR.End(xlUp).Font.Bold = True

            Sheets("Config").Activate

            ActiveCell.Offset(1, 0).Activate
        End If


    End If

    Loop Until ActiveCell = ""

ErrHandler:
            MsgBox "Field Description in Config tab not listed on report - please check parameters"
            Exit Sub

End Sub  

1 个答案:

答案 0 :(得分:3)

在错误处理代码开头之前放置退出Sub ,如下所示:

Exit Sub

ErrHandler:
            MsgBox "Field Description in Config tab not listed on report - please check parameters"
            Exit Sub