Range("A1:A10").value = Application.Transpose(Array)
Function Test(Choice As Range) ' Разворачивает элементы двумерного массива (Choice) в строку или столбец (Vektor) Dim Vektor Dim rSource As Range 'массив ячеек, выделенный на листе при вводе функции Dim lSourceRowsCount&, lSourceColumnsCount&, lRowsCount&, lColumnsCount& 'определяем сколько строк и столбцов выделено на листе для ввода функции Set rSource = Application.Caller lSourceRowsCount = rSource.Rows.Count lSourceColumnsCount = rSource.Columns.Count 'определяем сколько строк и столбцов в диапазоне переданном функции lRowsCount = Choice.Rows.Count lColumnsCount = Choice.Columns.Count 'определяем надо ли разворачивать массив или нет If lSourceRowsCount = 1 And lRowsCount > 1 Or lSourceColumnsCount = 1 And lColumnsCount > 1 Then Vektor = Application.Transpose(Choice.Value) Else Vektor = Choice.Value End If Test = VektorEnd Function
Function MyTest(Choice As Range)Dim Vektor(), Element, Z As Byte, S As Byte, N As Byte, Anz_Z As ByteDim Markierung As Range ' Массив ячеек, выделенный на листе при вводе функцииSet Markierung = Application.CallerAnz_Z = Markierung.Rows.Count ' Число строк в поле вызова функцииZ = Choice.Rows.CountS = Choice.Columns.CountN = Z * SReDim Vektor(1 To N)N = 0For Each Element In Choice N = N + 1 Vektor(N) = Element.ValueNext ElementIf Anz_Z = 1 Then MyTest = VektorElse MyTest = Application.Transpose(Vektor)End IfEnd Function