Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 8371|回复: 20

[已解决]在两个列表框之间移动选择的多列数据

[复制链接]
发表于 2014-3-6 23:08 | 显示全部楼层 |阅读模式
本帖最后由 黑山上的鹰 于 2014-3-7 16:39 编辑

列表框问题.rar (244.24 KB, 下载次数: 70)
发表于 2014-3-7 09:07 | 显示全部楼层
多列跟添加没什么区别,你能添加一个多列的,在别的LISTBOX中添加多列的也是一样的操作方法。
回复

使用道具 举报

发表于 2014-3-7 09:14 | 显示全部楼层
本帖最后由 hwc2ycy 于 2014-3-7 09:15 编辑
  1. Private Sub CommandButton添加_Click()    '〉
  2.     Dim i As Long
  3.     Dim j As Long
  4.     Dim k As Long
  5.     Dim arr() As Long
  6.     With ListBox1
  7.         If .ListCount > 0 Then
  8.             ReDim arr(1 To .ListCount)
  9.             For i = 0 To .ListCount - 1
  10.                 If .Selected(i) Then
  11.                     ListBox2.AddItem
  12.                     ListBox2.List(k, 0) = .List(i, 0)
  13.                     ListBox2.List(k, 1) = .List(i, 1)
  14.                     k = k + 1
  15.                 End If
  16.             Next i
  17.             For i = j To 1 Step -1
  18.                 .RemoveItem arr(i)
  19.             Next i
  20.         End If
  21.     End With
  22. End Sub
复制代码
添加按钮的代码,剩下的你可以试着写完。

回复

使用道具 举报

发表于 2014-3-7 13:05 | 显示全部楼层
学习帮顶
回复

使用道具 举报

 楼主| 发表于 2014-3-7 14:18 | 显示全部楼层
本帖最后由 黑山上的鹰 于 2014-3-7 14:41 编辑
hwc2ycy 发表于 2014-3-7 09:14
添加按钮的代码,剩下的你可以试着写完。


谢谢,添加与删除按钮初步实现,再请教一下,从 listbox1按住Ctrl或Shift键多选移动到listbox2后,需要再次选择移动listbox1中内容追加到listbox2已有内容后,又怎么弄?谢谢
Private Sub CommandButton添加_Click()    '〉
   Dim i As Long
Dim j As Long
Dim k As Long
Dim arr() As Long
    With ListBox1
  If .ListCount > 0 Then
ReDim arr(1 To .ListCount)
For i = 0 To .ListCount - 1
If .Selected(i) Then
ListBox2.AddItem
ListBox2.List(k, 0) = .List(i, 0)
ListBox2.List(k, 1) = .List(i, 1)
k = k + 1
  End If
Next i
For i = j To 1 Step -1
  .RemoveItem arr(i)
Next i
End If
End With
If ListBox1.ListCount > 0 Then '删除已选项目
For i = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(i) = True Then
ListBox1.ListIndex = i
ListBox1.RemoveItem ListBox1.ListIndex

End If
Next i
End If

End Sub
Private Sub CommandButton删除_Click() '<
Dim i As Long
Dim j As Long
Dim k As Long
Dim arr() As Long
    With ListBox2
  If .ListCount > 0 Then
ReDim arr(1 To .ListCount)
For i = 0 To .ListCount - 1
If .Selected(i) Then
ListBox1.AddItem
ListBox1.List(k, 0) = .List(i, 0)
ListBox1.List(k, 1) = .List(i, 1)
k = k + 1
  End If
Next i
For i = j To 1 Step -1
  .RemoveItem arr(i)
Next i
End If
End With
If ListBox2.ListCount > 0 Then '删除已选项目
For i = ListBox2.ListCount - 1 To 0 Step -1
If ListBox2.Selected(i) = True Then
ListBox2.ListIndex = i
ListBox2.RemoveItem ListBox2.ListIndex
End If
Next i
End If
End Sub

回复

使用道具 举报

发表于 2014-3-7 15:02 | 显示全部楼层
你说的是多选添加么?
还是从LISTBOX1中移动到LISTBOX2后,LISTBOX1中的要删除?
回复

使用道具 举报

 楼主| 发表于 2014-3-7 15:32 | 显示全部楼层
hwc2ycy 发表于 2014-3-7 15:02
你说的是多选添加么?
还是从LISTBOX1中移动到LISTBOX2后,LISTBOX1中的要删除?

从LISTBOX1中移动到LISTBOX2后,LISTBOX1中的删除已解决,我想请教的是如何追加,即第一次从listbox1中移动到listbox2中后,再次移动listbox中的其他项目,追加到前次已经移动到listbox2中的项目的后面,以及将listbox1项目全选到listbox2中的方法,谢谢
回复

使用道具 举报

发表于 2014-3-7 15:42 | 显示全部楼层
黑山上的鹰 发表于 2014-3-7 15:32
从LISTBOX1中移动到LISTBOX2后,LISTBOX1中的删除已解决,我想请教的是如何追加,即第一次从listbox1中移 ...

不好意思,上午没有检测周全。
刚刚看你这么说才发现这个问题所在。
  1. Private Sub CommandButton添加_Click()    '〉
  2.     Dim i As Long
  3.     Dim j As Long
  4.     Dim k As Long
  5.     Dim arr() As Long
  6.     With ListBox1
  7.         If .ListCount > 0 Then
  8.             ReDim arr(1 To .ListCount)
  9.             For i = 0 To .ListCount - 1
  10.                 If .Selected(i) Then
  11.                     ListBox2.AddItem
  12.                     k = ListBox2.ListCount - 1
  13.                     ListBox2.List(k, 0) = .List(i, 0)
  14.                     ListBox2.List(k, 1) = .List(i, 1)
  15.                 End If
  16.             Next i
  17.             For i = j To 1 Step -1
  18.                 .RemoveItem arr(i)
  19.             Next i
  20.         End If
  21.     End With
  22. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-3-7 16:11 | 显示全部楼层
hwc2ycy 发表于 2014-3-7 15:42
不好意思,上午没有检测周全。
刚刚看你这么说才发现这个问题所在。

谢谢,但另一个问题又出现了,不能按shift或ctrl实现多选
回复

使用道具 举报

发表于 2014-3-7 16:19 | 显示全部楼层
黑山上的鹰 发表于 2014-3-7 16:11
谢谢,但另一个问题又出现了,不能按shift或ctrl实现多选

多选单选,CTRL,SHIFT跟这个添加代码没关,代码只是把你选的添加到LISTBOX2而已。
我这试了,多选,单选,SHIFT,CTRL都没有问题。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 06:24 , Processed in 0.252778 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表