создание 2d списков массивов в VBA - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь попрактиковаться в создании списков 2d массивов в VBA. Я считаю, что у меня проблема с синтаксисом. У меня проблемы с добавлением элементов оси Y в строки. Я получаю сообщение об ошибке: «Недопустимая процедура или аргумент» для multiList.Add (List).

Сначала я инициализирую ось x, чтобы создать строки списка массивов, а затем инициализирую столбцы с комбинированным .count.

Sub Test()

Dim xaxis As Integer
xaxis = 4


Dim combined As New ArrayList
combined.Add ("version1")
combined.Add ("version2")
combined.Add ("version3")
combined.Add ("version4")
combined.Add ("version5")
combined.Add ("version6")
combined.Add ("version7")


Dim multiList As ArrayList
Set multiList = New ArrayList

'initialise empty array list of size xaxis with lists inside
For r = 0 To xaxis


Dim List As ArrayList
Set List = New ArrayList


multiList(r).Add (List)

Next


'fill the array lists

For x = 0 To xaxis
For y = 0 To combined.Count

multiList(x).Add (combined(y))

Next y
Next x


'print the array list

For x = 0 To xaxis
For y = 0 To combined.Count

Debug.Print (multiList(x)(y))

Next y
Next x




End Sub

Общая цель этого состоит в том, чтобы сделать некоторые перекрестные ссылки и заполнить список 2d-массивов, основываясь на том, содержат или нет элементы оси x элементы из «комбинированного» * ​​1006 *

1 Ответ

0 голосов
/ 14 марта 2020

Надеюсь, это то, что вам нужно:

Sub Test()
Dim xaxis As Integer
xaxis = 4

'First Arraylist Contains 7 strings
Dim combined As New ArrayList
For i = 1 To 7
    combined.Add ("version" & i)
Next i

'Second TotalArraylist contains 4 child Arraylists 1 to 4
Dim multiList As New ArrayList
Dim mul_element As ArrayList
For r = 1 To xaxis
    Set mul_element = New ArrayList
    multiList.Add mul_element
Next

'fill the TotalArraylist lists

For Each mul_element In multiList '[4 child Arraylists]
    For y = 0 To combined.Count - 1   '[7 strings] 0 to 6
        mul_element.Add (combined(y))
    Next y
Next mul_element

'print the string stores in mul_element(Child arraylist) in multiList(Total arraylist)

For x = 0 To multiList.Count - 1 '[4 element] 0 to 3
    For y = 0 To combined.Count - 1  '[7 element] 0 to 6
        Debug.Print multiList(x)(y)
    Next y
Next x
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...