Re: [VBA ] 動態陣列索引超出範團?!

看板Visual_Basic作者 ([αλφα])時間14年前 (2010/08/03 10:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《A1pha ([αλφα])》之銘言: : ※ 引述《tianne (tianne)》之銘言: : : 請教版上各位高手們 : : 小弟用的是MS Office 2003 Excel VBA : : 但每次程式裡有動態陣列時,總是會出現"陣列索引超出範圍" : : 簡單範例如下: : : Sub array_test() : : Dim T_array() As Integer : : For i = 0 To 4 : : T_array(i) = i : : Next i : : End Sub : : 但若改成一般陣列,則可正常執行: : : Sub array_test() : : Dim T_array(5) As Integer : : For i = 0 To 4 : : T_array(i) = i : : Next i : : End Sub : : 我查過了Help檔,似乎不應該發生這種問題咧~ : : 麻煩版上大大幫忙解答囉!! 謝謝 !! : 借個標題@@" : 我也有同樣的問題@@" : 不過我有Redim但是還是出現"陣列索引超出範圍" : 我是這樣寫的: : 在Global的地方 : Dim LightPosition() As Integer : 然後在Main()裡面: : Redim LightPosition(0, 1) As Integer : 然後在另外個SUB裡面: : Sub RecordLightPosition() : ReDim Preserve LightPosition(UBound(LightPosition) + 1, 1) As Integer ^^^^^^^^ 我把這Preserve拿掉之後,就可以了@@" 為什麼會這樣勒? 啊, 剛剛查了一下, 才知道, 當使用Preserve的時候, Redim只能重新定義最後一維的維度... 所以我試圖改變地一維的維度是錯的...囧 : end Sub : 結果就卡在黃色的那行..囧 : 我連資料都還沒開始寫.... : 原本打算在Redim Preserve LightPosition後, : 把資料寫在+1的那格, : 但是就在+1時就卡住了...囧 : 怎麼會這樣勒?QQ : 太慘烈了 囧 -- "Every kid who has dreamed of being a baseball player has stood in his front yard with a bat and said to himself, "Bottom of the ninth, Game 7 of the World Series, the bases are loaded," and then envisioned hitting a home run to win the game. My job is to shatter that dream." By Huston Street -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.202.55.129
文章代碼(AID): #1CLu3Krx (Visual_Basic)
文章代碼(AID): #1CLu3Krx (Visual_Basic)