Я много раз задавал этот вопрос, но я не могу найти что-то, что работает.
Я хочу объявить массив массивов (arrArr) неопределенной длины. Фактически, я работаю с Excel: если лист существует, извлеките его массив и сохраните его в массиве массивов. Я объявил эту arrArr, как это, и программа в основном работает следующим образом:Как объявить массив массивов?
dim arrArr as Variant
if sheetIsFound then
sheetsFound = sheetsFound + 1
arrArr(sheetsFound) = arrayOfTheSheet
end if
, но он не работает: отладка говорит, что массив пуст. Что случилось в моей (плохой) логике?
Благодаря
Я думаю, что это ваш объект Varient, который является проблемой. Вы думали об использовании списков, а не массивов? И есть список списков? Или существует конкретная причина для использования массива массивов? – jimplode
Да, вариант - определенно проблема, но это работает: Dim vaTest As Variant; vaTest = Array (Array1, array2). И я использую массив массивов, потому что кажется, что это удобный способ сравнить значения массива с каждым массивом arrArr, поскольку я не могу создавать переменные, как в PHP: $ {"array". $ numberOfTheArray} = $ thisArray – Coronier
Вы должны Dim/Redim Variant как массив перед назначением элементу внутри него. Вариант с радостью примет назначение в качестве массива, но, как написано выше, массив не будет иметь размеров (без элементов). – Bob77