VB - 下标超出范围,错误9

时间:2013-04-10 20:08:01

标签: vba compiler-errors subscript

**我是VB的新手,我收到了错误9,下标超出了范围。错误表明它在下面的程序中。请让我知道可能是什么问题。感谢您的帮助

Private Sub RebuildGrid()
    Const c_strProcedureName As String = "RebuildGrid"
    Dim intIndex As Integer

    On Error GoTo Error_Handler

    For intIndex = 0 To g_intNumNucDataFields - 1
        grdNuclides.Columns(intIndex).DataField = ga_strNucFieldName(intIndex)
        grdNuclides.Columns(intIndex).Visible = False

        If StrComp(ga_strNucFieldFormat(intIndex), "None", vbTextCompare) <> 0 Then
            grdNuclides.Columns(intIndex).NumberFormat = ga_strNucFieldFormat(intIndex)
        End If

        grdNuclides.Columns(intIndex).Width = 1400

        If StrComp(LCase$(ga_strNucFieldUnits(intIndex)), "none", vbTextCompare) = 0 Then
            grdNuclides.Columns(intIndex).Caption = ga_strNucFieldTitle(intIndex)
        Else
            grdNuclides.Columns(intIndex).Caption = ga_strNucFieldTitle(intIndex) & _
            " " & vbCr & "(" & ga_strNucFieldUnits(intIndex) & ") "
        End If
        grdNuclides.Columns(intIndex).FooterText = "Reference"
    Next intIndex

    Exit Sub
Error_Handler:

    gud_PrgErr.Number = Err.Number
    gud_PrgErr.Severity = 5
    gud_PrgErr.Description = Err.Description
    gud_PrgErr.Module = c_strModuleName
    gud_PrgErr.Procedure = c_strProcedureName
    Call Display_UI_Error

End Sub

Private Sub mnuFileExit_Click()
    Unload Me
End Sub

1 个答案:

答案 0 :(得分:0)

确保g_intNumNucDataFields不高于列数(例如grdNuclides.Columns.Count)。

您还可以尝试注释掉错误处理,然后运行它以查看是否在错误上获得了行号。