Желаемый результат: Результат будет функцией, которая строит массив значений из столбца B. Значения ограничены тем же значением в столбце A. 'Например. Значение столбца A = 1 myArray = (0,1,2) '' Столбец B Значение = 2 myArray = (4,5,6,7,8) 'Сборка массива в Excel VBA
Первый раз, когда вы пытаетесь использовать массивы в VBA и нуждаетесь в помощи , У меня есть следующие данные в столбцах A и B в Excel:
A B
1 0
1 1
1 2
2 4
2 5
2 6
2 7
2 8
3 9
3 10
3 11
4 12
4 15
4 18
У меня есть следующий VBA код:
Function buildMyArray()
Dim ARange as Range
Dim B as Integer
Dim myArrary as Variant
For Each ARange In Sheets("SheetName").Range("B:B")
If ARange.Value = 1 Then
B = Application.WorksheetFunction.VLookup(ARange.Value, Sheets("SheetName").Range("A:B"), 2, False)
myArray = Array(B)
End If
Next ARange
End Function
Я пытаюсь построить функцию, которая будет искать столбец A для каждого экземпляра целое число (которое я в конечном счете динамически передаю). Затем для каждого экземпляра этого целого введите vlookup в соседний столбец (B). Затем я хочу создать массив значений из поиска (в приведенном выше случае (0,1,2)).
Приведенный выше код является самым близким, который я получил. Я получаю первое значение в B (0) как единственное значение в массиве. Я достаточно уверен в этом, потому что логика массива находится в инструкции If. Однако, если я вытащу его, я получаю ошибки компиляции.
Пожалуйста, помогите новичку учиться. Благодарю.
Это очень трудно понять, что йо ты пытаешься сделать. Можете ли вы объяснить, что вы хотите, чтобы результат был простым языком, не обсуждая процесс того, как вы хотите достичь результата? – Tmdean
Результатом будет функция, которая строит массив значений из столбца B. Значения ограничены тем же значением в столбце A. 'Например. Значение столбца A = 1 myArray = (0,1,2) ' ' Столбец B Значение = 2 myArray = (4,5,6,7,8) ' – augusthippo
Хорошо, это имеет больший смысл.Спасибо – Tmdean