2015-10-24 3 views
0

Я хотел бы вернуть массив неизвестного размера из функции vba. У меня мало опыта работы с vba.Как вернуть массив из функции vba в Excel?

Я googled этот вопрос и нашел эту страницу: Returning Arrays From VBA User Defined Functions.

Это приводит следующий пример для функции, которая возвращает массив:

Function Test() As Variant 
    Dim V() As Variant 
    Dim N As Long 
    Dim R As Long 
    Dim C As Long 
    ReDim V(1 To 3, 1 To 4) 
    For R = 1 To 3 
     For C = 1 To 4 
      N = N + 1 
      V(R, C) = N 
     Next C 
    Next R 
    Test = V 
End Function 

Так я напечатал Alt+F11, создал новый модуль и вошел в эту функцию. Затем в моей книге я создал новый лист, набрав =Test() в ячейке и нажав Ctrl+Shift+Enter, а 1 появился в одной ячейке.

Что я делаю неправильно? По данным сайта, выход это должно быть

массив с 3-х строк и 4 столбца, который содержит целые числа от 1 до 12.

+0

Он вернул массив, но если формула подтверждена только для одной ячейки, то эта ячейка будет показывать только верхний левый элемент массива. Каждая ячейка на листе отображает только один элемент массива. –

ответ

2

Первый привет-свет А1 через D3. Затем введите:

=Test() 

как формула массива:

enter image description here

Формулы массива должны быть введены с Ctrl + Сдвиг + Enter, а не только Введите ключ.

Смежные вопросы