这是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),将被选择,但是这个代码现在通不过,复选框没有反应,该怎么改呢
没分了。老师多担待些吧
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),将被选择,但是这个代码现在通不过,复选框没有反应,该怎么改呢
没分了。老师多担待些吧
是
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
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
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
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