У меня есть функция в VBA, которая генерирует массив строк. Он отлично работает при вызове из другой функции VBA, но не при вызове с рабочего листа.Функция массива в Excel VBA
Вот как это должно быть использовано:
- выберите A1: A3
- записи в строке формул
=Test()
, а затем нажмитеCtrl-Shift-Enter
, чтобы сделать его функцию массива - A1 должна содержать
A
, A2 должны содержатB
и A3 должны содержатьC
Когда я на самом деле попробовать это, о.е. ts A
во всех трех ячейках массива. Как я могу получить данные, возвращенные Test
в разные ячейки массива?
Для тех, кто хотел бы его увидеть, вот код функции. Имейте в виду, что функция отлично работает при вызове из других функций.
Function Test() As String()
Dim a(1 To 3) As String
a(1) = "A"
a(2) = "B"
a(3) = "C"
Test = a
End Function
Я понятия не имел, что направление по умолчанию массива было справа, а не вниз. – Joe
К сожалению, не существует простого автоматического способа для Excel заполнить массив горизонтальным или вертикальным. Однако могут быть некоторые трюки. –
Yup, так как @andy holaday указывает, Чип Пирсон также разобрался с горизонтальной/вертикальной дилеммой. –