如何声明数组数组?

时间:2010-10-05 09:06:57

标签: arrays vb6 excel-vba vba excel

我已经多次搜索过这个问题,但我找不到有用的东西。 我想声明一个未指定长度的数组(arrArr)数组。实际上,我使用Excel:如果工作表存在,则获取其数组并将其存储在数组数组中。 我已经像这样声明了这个arrArr,程序基本上就是这样的:

dim arrArr as Variant
if sheetIsFound then
    sheetsFound = sheetsFound + 1
    arrArr(sheetsFound) = arrayOfTheSheet
end if

但它不起作用:debug表示数组为空。我的(生病)逻辑有什么问题?

由于

1 个答案:

答案 0 :(得分:4)

当你说dim arrArr()时,数组没有边界。你必须将它重新编号为你想要的数字。如果要保留现有项,则需要preserve关键字。您可以添加监视并逐步执行代码,以查看每个步骤中发生的情况。

试试这个:

Dim arrArr() As Variant
ReDim arrArr(0) 'make an array with 1 item
If sheetIsFound Then
    sheetsFound = sheetsFound + 1
    ReDim Preserve arrArr(0 To (UBound(a) + 1)) 'add an index to the array
    arrArr(UBound(a)) = arrayOfTheSheet ' add the array to the new index in arrArr
End If

要访问数组,请使用语法arrArr(0),arrArr(1)等。

如果您需要更多帮助,此页面有一些示例:http://www.brainbell.com/tutors/Visual_Basic/Arrays.htm