这是list下的一段代码 
list里的格式为 
有可能是b-67890-1 
也有可能是b-2367890-1,2,3等等 
For i = 0 To 3 
str = List1.Text 
j = Split(str, "-")(2) 
sz = Split(j, ",") 
fhz = UBound(sz) 
For u = 0 To fhz 
If Check1(i).Caption = sz(u) Then 
Check1(i).Value = 1 
Else 
Check1(i).Value = 0 
End If 
Next 
Next 
现在j是最后一个“-”号后面的字符,这个字符大与1时以逗号分隔,如果是是b-67890-1 ,那么Check1(1)被选择,如果b-67890-1 ,2,4那么Check1(1),Check1(2),Check1(4),将被选择,但是这个代码现在通不过,复选框没有反应,该怎么改呢
没分了。老师多担待些吧

解决方案 »

  1.   

    不是sz = Split(j, ",")(2)

    sz=split(j(2),",")
    而且你的循环有问题
    改成
    For u = 0 To fhz 
    If Check1(i).Caption = sz(u) Then 
    Check1(i).Value = 1 
    exit for
    End If 
    Next 
      

  2.   


    Dim strTmp() As String, strOption() As String, i As IntegerstrTmp = Split(List1.Text, "-")If Ubound(strTmp) = 2 Then
        For i = 0 To Check1.Item.Count - 1
            Check1(i) = Unchecked
        Next i
        strOption = Split(strTmp(2), ",")
        For i = 0 To Ubound(strOption)
            Check1(Val(strOption(i))) = vbChecked
        Next i
    End If 
      

  3.   


        str = List1.Text
        Dim arr() As String
        arr = Split(str, "-")
        If InStr(arr(2), ",") = 0 Then  '如果不存在“,”号,则直接选中这个复选框,否则把arr(2)按“,”号分组,选中按钮
            Check1(CInt(arr(2))).Value = 1
        Else
            sz = Split(arr(2), ",")
            For i = 0 To UBound(sz) - 1
                Check1(CInt(sz(i))).Caption = sz(u)
                Check1(CInt(sz(i))).Value = 1
            Next
        End If
      

  4.   

    Cint改成Val    str = List1.Text
        Dim arr() As String
        arr = Split(str, "-")
        If InStr(arr(2), ",") = 0 Then  '如果不存在“,”号,则直接选中这个复选框,否则把arr(2)按“,”号分组,选中按钮
            Check1(Val(arr(2))).Value = 1
        Else
            sz = Split(arr(2), ",")
            For i = 0 To UBound(sz) - 1
                Check1(Val(sz(i))).Caption = sz(i)
                Check1(Val(sz(i))).Value = 1
            Next
        End If