1

发生错误时,下面的错误处理程序可以正常工作。但是,当没有错误时,它会正确跳过它,然后在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  
4

1 回答 1

3

Exit Sub放在错误处理代码的开头之前,如下所示:

Exit Sub

ErrHandler:
            MsgBox "Field Description in Config tab not listed on report - please check parameters"
            Exit Sub
于 2012-12-20T15:07:37.880 回答