ReDim保留错误

Hum*_*ble 2 excel vba excel-vba excel-2010

我正在尝试重新保存二维数组.在我的代码的最顶端,我有:

Dim BayQuestionArray() As Variant
Dim numberofbay As Double
Run Code Online (Sandbox Code Playgroud)

我有两个按钮,第一个按钮用于初始化数组大小:

numberofbay = 1
ReDim Preserve BayQuestionArray(numberofbay, 37)
Run Code Online (Sandbox Code Playgroud)

第二个按钮用于升大数组

ReDim Preserve BayQuestionArray(numberofbay + 1, 37)
Run Code Online (Sandbox Code Playgroud)

第二个按钮不起作用,它一直给我一个错误说运行时错误9下标超出范围.为什么?

Ror*_*ory 9

当使用保留调整大小的数组变量(声明为例如,而不是作为变型),则可以仅改变上边界的的最后一维.您需要转置数组,或使用锯齿状数组或其他结构,如Dictionary/Collection.

  • 不 - 这是一个事实,它是一个阵列意味着你不能做你想做的事情.如果你把它声明为'Dim BayQuestionArray As Variant`它*可能*工作 - 最近的一次Office更新已经对变量数组处理做了一些奇怪的事情 - 但实际上你应该重新考虑你的方法. (3认同)