Как известно, встроенная в Excel функция листа Transpose имеет ограничения, вследствии чего её не удаётся применять для транспонирования произвольных массивов. Вот список ограничений встроенной функции Transpose:
Чтобы избежать этих ограничений, рекомендую использовать пользовательскую функцию TransposeArray: Sub ПримерИспользования() ИсходныйМассив = ActiveSheet.UsedRange.Offset(1).Value ТранспонированныйМассив = TransposeArray(ИсходныйМассив) End Sub Код самой функции: Function TransposeArray(ByVal arr As Variant) As Variant ' Пользовательская функция для транспонирования массива Dim tempArray As Variant ReDim tempArray(LBound(arr, 2) To UBound(arr, 2), LBound(arr, 1) To UBound(arr, 1)) For X = LBound(arr, 2) To UBound(arr, 2) For Y = LBound(arr, 1) To UBound(arr, 1) tempArray(X, Y) = arr(Y, X) Next Y Next X TransposeArray = tempArray End Function
|
|||

Комментарии
Отправить комментарий