VB怎么把列表框筛选出来的的数据在另一个列表框排序啊?

我想把第二个列表框的排序,但是总是把第一个产生的全部随机数排序了,求大神帮忙看看这是代码:OptionBase1Dima(30)PrivateSubCommand1_Cl... 我想把第二个列表框的排序,但是总是把第一个产生的全部随机数排序了,求大神帮忙看看
这是代码:
Option Base 1
Dim a(30)
Private Sub Command1_Click()
Randomize
List1.Clear
For i = 1 To 30
a(i) = Val(Int(Rnd * 2901 + 100))
List1.AddItem a(i)
Next i
End Sub
Private Sub Command2_Click()
List2.Clear
For i = 1 To 30
If a(i) Mod 400 = 0 Or a(i) Mod 4 = 0 And a(i) Mod 100 <> 0 Then
List2.AddItem a(i)
End If
Next i
End Sub
Private Sub Command3_Click()
For i = 1 To 29
For j = i + 1 To 30
If a(i) > a(j) Then
c = a(i)
a(i) = a(j)
a(j) = c
End If
Next j
List3.AddItem a(i)
Next i
End Sub
展开
 我来答
shouxinh123
2014-12-25 · 超过151用户采纳过TA的回答
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:203万
展开全部
你的代码不是对的吗,我看了一下,也试了一下,没问题啊
当然 你选择的排序方法还有待改进

我大概明白你的意思了
你是不是想在第三个列表框中显示第二个列表框的内容啊,这样的话你就不能对a(i)排序了啊
a(i)中是所有的元素都在的啊
你可以对list2的list数组进行排序操作

但要注意list数组是从0开始的,总的个数为list2.listcount
追问
就是那个意思   我想把第二个列表框的排序,然后显示在第三个中        但是我VB早忘得差不多了,不知道怎么弄了。。。求代码
追答
Private Sub Command3_Click()
dim b()
n=list2.listcount
redim b(n)
for i=0 to n-1
b(i+1)=list2.list(i)
next i
For i = 1 To n-1
For j = i + 1 To n
If b(i) > b(j) Then
c = b(i)
b(i) = b(j)
b(j) = c
End If
Next j
List3.AddItem b(i)
Next i
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式