我已经多次搜索过这个问题,但我找不到有用的东西。 我想声明一个未指定长度的数组(arrArr)数组。实际上,我使用Excel:如果工作表存在,则获取其数组并将其存储在数组数组中。 我已经像这样声明了这个arrArr,程序基本上就是这样的:
dim arrArr as Variant
if sheetIsFound then
sheetsFound = sheetsFound + 1
arrArr(sheetsFound) = arrayOfTheSheet
end if
但它不起作用:debug表示数组为空。我的(生病)逻辑有什么问题?
由于
答案 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