[VBA ] 請幫我看一下排序的code出了甚麼問題~

看板Visual_Basic作者 (穎)時間16年前 (2008/06/20 15:18), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/3 (看更多)
因為我才剛開始學寫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

06/20 16:32, , 1F
未定義a()大小:redim a(50),=> a(0)~a(49)
06/20 16:32, 1F

06/20 21:08, , 2F
ReDim a(49) 才是 0 ~ 49
06/20 21:08, 2F

06/20 21:09, , 3F
括號裡面是上限,不是大小喔
06/20 21:09, 3F
文章代碼(AID): #18Mrcffe (Visual_Basic)
討論串 (同標題文章)
文章代碼(AID): #18Mrcffe (Visual_Basic)