首页 > 解决方案 > 下标超出范围 vb6

问题描述

帮帮我,长话短说,我正在制作防病毒软件。现在我想让我的防病毒软件改变颜色,所以我正在制作一个表格和 .ini 文件(A 保存)。因此,经过长时间的模块和功能编码。我想测试一下,直到我点击设置表单按钮。我的下标超出范围错误 (9)。

Dim Line As String, tmp() As String, ValueX(10) As String, a As Byte
a = 0
If IsFileX(Path) = True Then
    Open Path For Input As #1
        Do
            
            Line Input #1, Line
            tmp = Split(Line, "=")
            If UBound(tmp) = 1 Then
                a = a + 1
                ValueX(a) = tmp(1)
                Ck1.value = CInt(Left(Replace(ValueX(a), " ", ""), 1))
            End If
                If UBound(tmp) = 1 Then
                a = a + 2
                ValueX(a) = tmp(1)
                Ck2.value = CInt(Left(Replace(ValueX(a), " ", ""), 1))
            End If
                If UBound(tmp) = 1 Then
                a = a + 3
                ValueX(a) = tmp(1)
                Ck3.value = CInt(Left(Replace(ValueX(a), " ", ""), 1))
            End If
                If UBound(tmp) = 1 Then
                a = a + 4
                ValueX(a) = tmp(1)
                Ck4.value = CInt(Left(Replace(ValueX(a), " ", ""), 1))
            End If
                If UBound(tmp) = 1 Then
                
                a = a + 5
                ValueX(a) = tmp(1)
                Ck5.value = CInt(Left(Replace(ValueX(a), " ", ""), 1))
            End If
                If UBound(tmp) = 1 Then
                a = a + 6
                ValueX(a) = tmp(1)
                Ck6.value = CInt(Left(Replace(ValueX(a), " ", ""), 1))
            End If
        Loop Until EOF(1)
    Close #1
Else
MsgBox " Read Antivirus Setting is ERROR !" & vbNewLine & "Because the file [ MurderAV.ini ] is not found!", vbCritical, "MurderAV Error"
End If
End Sub

突出显示的部分是 ck5 中的 ValueX(a)。(Ck 是复选框)生病拍照所以它可以更清晰。点击这里 另外,我是初学者,所以我需要尽快帮助

标签: vb6subscript

解决方案


问题是每个If语句都有相同的条件:

If UBound(tmp) = 1 Then

所以,当你浏览代码时,你执行:

a = 0
a = a + 1
a = a + 2
a = a + 3
a = a + 4
a = a + 5

15 也是如此,所以a你有:

ValueX(15) = tmp(1)

但是从 开始ValueX(10) As String,您就离开了数组的末尾。


推荐阅读