作者shirley82025 (颖)
看板Visual_Basic
标题[VBA ] 请帮我看一下排序的code出了甚麽问题~
时间Fri Jun 20 15:18:00 2008
因为我才刚开始学写VBA,所以很多东西都不是很懂
所以这些code都是我从网路找再自己改的,
我是想做排序 先写一个可以产生50个一直列乱数的code
然後用气泡排序法做排序
可是我要执行的时候一直跑出阵列索引超出范围
请大家帮我看一下下面的式子到底哪里出了问题
Option Explicit
Dim i As Integer
Dim a() As Integer
Sub MakeArr()
For i = 1 To 50
a(i) = Int(Rnd * 49 + 1)
Next i
End Sub
Sub BubblingSort()
Dim j As Integer
Dim TEMP As Integer
For i = 1 To 49
For j = i + 1 To 50
If a(i) > a(j) Then
TEMP = a(j)
a(j) = a(i)
a(i) = TEMP
End If
Next j
Next i
End Sub
-->出问题的是a(i) = Int(Rnd * 49 + 1) 跟If a(i) > a(j) Then这两行
请问我要怎麽改才不会说我超出范围呢? 先谢谢大家帮忙~
PS: 如果我只是要有一直列的乱数排序
我自己打数字 然後再用上面气泡排序的式子
这样可以吗?? 还是有别的方法去排序呢?
(我知道有快速排序法 可是那个我不知道要怎麽改成我要的样子....)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.165.219.124
1F:→ m9556:未定义a()大小:redim a(50),=> a(0)~a(49) 06/20 16:32
2F:推 fumizuki:ReDim a(49) 才是 0 ~ 49 06/20 21:08
3F:推 fumizuki:括号里面是上限,不是大小喔 06/20 21:09