for i=0 to list1.listcount -1

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:18:52
我想知道的是
在for i=0 to list1.listcount -1中 为什么步长要为 -1 ?
修改-1为其他值均出现错误

Private Sub Cmd1_Click()
Dim i As Integer, j As Integer
Dim a(8) As String
For i = 0 To List1.ListCount - 1
If List1.Selected(i) Then
a(i) = List1.List(i)
'将列表框List1中选中的列表项放进数组a中
j = j + 1
End If
Next i
If j < 2 Then
MsgBox "请选择至少两项"
'如果列表框List1中选中的列表项少于2项,以信息框提示
Else
List2.Clear
'清除list2中所有项目
For i = 0 To List1.ListCount - 1
If a(i) <> "" Then List2.AddItem a(i)
'将数组a中的所有项加载到列表框List2中
Next
End If
End Sub

Private Sub Command1_Click()
Dim i As Integer
i = List2.ListIndex
List2.RemoveItem (i)

End Sub

Private Sub Form_Load()
List1.AddItem "1"

for i=0 to list1.listcount -1是循环到数组行数-1,不是步长.因为循环式从0开始,必数组行数少1,所以循环到-1,数组刚好循环完.

其他代码就不用了
for i=0 to list1.listcount -1是很正常的
什么什么count往往都要 -1
决定这个的是你这个i打算怎么用
你看你循环体里是a(i)
a是数组,数组是从0开始排索引的
但是count是从1开始排的,有3个就是1,2,3
可是转为数组就应该是a(0),a(1),a(2)
所以count形式的都要 -1再作为数组的索引