还分单选多选?for i=0 to list1.listcount-1 list2.additem list1.list(i) next i
'两个列表的数据互相移动,可以设置全部移动 Private Sub MoveListItem(lstSource As ListBox, lstDest As ListBox, ByVal bAllItems As Boolean) Dim intIdx As Integer
On Error GoTo ErrMsg
If bAllItems = True Then 'All items For intIdx = 0 To lstSource.ListCount - 1 Call lstDest.AddItem(lstSource.List(intIdx)) Next intIdx Call lstSource.Clear Else 'Selected items Do While intIdx < lstSource.ListCount If lstSource.Selected(intIdx) = True Then Call lstDest.AddItem(lstSource.List(intIdx)) Call lstSource.RemoveItem(intIdx) Else intIdx = intIdx + 1 End If Loop End If
ErrExit: On Error GoTo 0 Exit Sub
ErrMsg: MsgBox Err.Number & ": " & Err.Description Resume ErrExit End Sub
'首先手动设置 List1.Style = 1 For i = 0 To 10 List1.AddItem i If i Mod 2 Then List1.Selected(i) = True If List1.Selected(i) Then List2.AddItem List1.List(i) Next
如果多选,不知道怎么写。都忘了
list2.additem list1.list(i)
next i
Private Sub MoveListItem(lstSource As ListBox, lstDest As ListBox, ByVal bAllItems As Boolean)
Dim intIdx As Integer
On Error GoTo ErrMsg
If bAllItems = True Then 'All items
For intIdx = 0 To lstSource.ListCount - 1
Call lstDest.AddItem(lstSource.List(intIdx))
Next intIdx
Call lstSource.Clear
Else 'Selected items
Do While intIdx < lstSource.ListCount
If lstSource.Selected(intIdx) = True Then
Call lstDest.AddItem(lstSource.List(intIdx))
Call lstSource.RemoveItem(intIdx)
Else
intIdx = intIdx + 1
End If
Loop
End If
ErrExit:
On Error GoTo 0
Exit Sub
ErrMsg:
MsgBox Err.Number & ": " & Err.Description
Resume ErrExit
End Sub
For i = 0 To 10
List1.AddItem i
If i Mod 2 Then List1.Selected(i) = True
If List1.Selected(i) Then List2.AddItem List1.List(i)
Next