0

**私は 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
4

1 に答える 1

0

g_intNumNucDataFieldsが列数を超えないようにしてください(例: grdNuclides.Columns.Count)。

エラー処理をコメントアウトしてから実行して、エラーの行番号が表示されるかどうかを確認することもできます。

于 2013-04-10T20:15:23.837 に答える