vba: цикл через пользовательский тип данных - PullRequest
0 голосов
/ 04 мая 2018

У меня есть эти элементы:

Type Posizione
    Name As String
    Position As Byte
End Type
Public Location() as Posizioni

Я бы хотел провести цикл между минимальным положением (). Valore и максимальным.

Я пытался с:

For i = LBound(Location().position) To UBound(Location().position)

Но я получаю "Недопустимый квалификатор" в этой позиции.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Вам нужно будет найти минимальное и максимальное значения, прежде чем переходить между ними. Что-то вроде этого сделает это:

Dim PosMin As Byte
Dim PosMax As Byte

PosMin = 255
PosMax = 0
For i = LBound(Location) To UBound(Location)
    If Location(i).Position > PosMax Then
        PosMax = Location(i).Position
    End If
    If Location(i).Position < PosMin Then
        PosMin = Location(i).Position
    End If
Next
For i = PosMin To PosMax
    Debug.Print i
Next i
0 голосов
/ 04 мая 2018

Ваш массив является переменной Location, поэтому вы должны использовать это как параметр для lbound и ubound

For i = LBound(Location) To UBound(Location)
    Location(i).position = i
    Location(i).Name = "Hello " & i
Next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...