作者A1pha ([αλφα])
看板Visual_Basic
标题Re: [VBA ] 动态阵列索引超出范团?!
时间Tue Aug 3 10:37:06 2010
※ 引述《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