Так что я работаю над изучением массивов в VBA.
VBA не очень хорошо обрабатывает массивы, и я нашел. net реализацию в VBA, которая, кажется, работает лучше / чище. Отлично, давайте использовать это!
Итак, я начну с создания своего саба, затемнения массива и установки его:
Sub ArrayTest()
Dim StorageArray as Variant
Set StorageArray = CreateObject("System.Collection.Arraylist")
Ура, рабочий массив! Давайте добавим к нему предметы.
StorageArray.Add "Peter"
For i = 1 to 4
StorageArray.Add i
Next i
Прекрасно работает!
Давайте достанем из него предметы.
For each Name in StorageArray
debug.print Name
Next
end sub
Пока все здесь радужно. Теперь я хочу сделать go немного более продвинутым: я хочу добавить многомерные объекты в массив, и я хочу, чтобы массив ВЕСЬ все сразу в Excel. Вот где он ломается.
StorageArray.Add "Peter", "Paul"
кричит на меня за неуказанную синтаксическую ошибку. StorageArray.Add ("Peter", "Paul")
продолжает кричать на меня.
ShTest.Range("A1").value2 = StorageArray
тоже кричит на меня. «Отсутствующий параметр не имеет значения по умолчанию. Имя параметра: Параметры» - это указанная ошибка.
Я знаю, что в какой-то момент я мог выложить весь массив в Excel таким образом, но я строил из чужого кода, к которому у меня больше нет доступа, поэтому я не могу понять, в чем разница is.
Я хочу посмотреть на другие методы массива, но причина, по которой я в первую очередь изучаю это, заключается в том, что у меня большой (~ 70 тыс. строк) файл, для которого требуется таблица без привязки. PowerQuery является учебным пособием для этого, однако у меня нет доступа к нему. Очевидно, SQL также может помочь, но мои SQL знания недостаточно сильны. Двойной l oop работает, но для его обработки требуются буквальные часы, и я знаю, что это можно сделать за считанные минуты. Я подозревал, что большую часть времени занимает запись данных по одной строке за раз в таблицу результатов, поэтому я изучаю массивы, чтобы ускорить процесс.