Вставка в многомерный вариантный массив VBA MS Access - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь вставить данные в 2-мерный вариантный массив в VBA на основе учебника, который я нашел в Google.

Это мой код:

    Dim sampleVariant As Variant
    ReDim sampleVariant(3, 3)

    For sample = 0 To UBound(sampleVariant, 1)
        For information_e = 0 To UBound(sampleVariant, 2)
            sampleVariant(sample, information_e) = "Name ~row:" & sample & " ~column:" & information_e
        Next
    Next

Результат

Name ~row:1 ~column:1,Name ~row:1 ~column:2,Name ~row:1 ~column:3
Name ~row:2 ~column:1,Name ~row:2 ~column:2,Name ~row:2 ~column:3
Name ~row:3 ~column:1,Name ~row:3 ~column:2,Name ~row:3 ~column:3

Как мне сделать так:

Name ~row:1 ~column:1,Age ~row:1 ~column:2,Address ~row:1 ~column:3
Name ~row:2 ~column:1,Age ~row:2 ~column:2,Address ~row:2 ~column:3
Name ~row:3 ~column:1,Age ~row:3 ~column:2,Address ~row:3 ~column:3

1 Ответ

1 голос
/ 08 апреля 2020

Я думаю, что лучший способ понять это - посмотреть, как это происходит. Вы действительно не предоставили много контекста в своем посте, поэтому я просто предполагаю, что вы просто не понимаете, что на самом деле происходит.

Итак, (x, y) - это ваш многомерный массив, где x - строки, а y - столбцы, верно?

Так что, если бы вы вручную присваивали им значения, вы бы сделайте это так (организовано визуально, никогда не используйте разделители команд).

arr(0,0)="this": arr(0,1)="that" : arr(0,2)="other"
arr(1,0)="this": arr(1,1)="that" : arr(1,2)="other"
arr(2,0)="this": arr(2,1)="that" : arr(2,2)="other"

Это порядок, в котором циклы присваивают им значения, сверху вниз, слева направо. Здесь, на мой взгляд, следует указать еще одну вещь:

from 0 to UBOUND(array, dimension)

Я думаю, что это лениво. Я думаю, что его лучше лучше полностью определить, например:

from LBOUND(array, dimension) to UBOUND(array, dimension)

Но полностью зависит от вас.

Надеюсь, это поможет вам.

...