【发布时间】:2016-06-09 23:54:08
【问题描述】:
我正在尝试创建一个在循环中添加单元的动态数组。 每次我尝试重新调整和添加一个单位时,都会收到以下错误:
下标超出范围
我的代码:
dim arr()
strSql = "SELECT item from dupEmail"
Set rs = CurrentDb.OpenRecordset(strSql)
rs.MoveFirst
ReDim arr(0)
Do While Not rs.EOF
arr(UBound(arr, 1)) = rs.Fields(0)
ReDim Preserve arr(1, UBound(arr, 1) + 1)
rs.MoveNext
Loop
我试过ReDim Preserve arr(0, UBound(arr, 0) + 1),但也没有用。
【问题讨论】:
-
错误发生在哪一行?你为什么要重新调整呢?在循环之前查找记录集中的条目数并预先设置数组的长度。
-
为什么不直接使用记录集呢?你试过 Redim 保存 arr(ubound(arr)+1)
-
redim行出现错误。感谢您的提示,但我必须这样做。请记住,这是对我的代码的简化。
-
@Nathan_Sav,是的。仍然得到同样的错误。
-
不是单索引数组,还想把它改成多维数组吗?