作者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
→ m9556:未定義a()大小:redim a(50),=> a(0)~a(49) 06/20 16:32
推 fumizuki:ReDim a(49) 才是 0 ~ 49 06/20 21:08
推 fumizuki:括號裡面是上限,不是大小喔 06/20 21:09