Transpose меняет местами измерения массива, то есть строки становятся столбцами и наоборот. Использование совсем не обязательно, все зависит от того что куда присваивается, но чаще применение обязательно для того что массив имеет переменный размер, а без потери данных менять можно только последнее измерение, а типа нужно первое, тогда массив транспонируется для соответствия.
Transpose меняет местами измерения массива, то есть строки становятся столбцами и наоборот. Использование совсем не обязательно, все зависит от того что куда присваивается, но чаще применение обязательно для того что массив имеет переменный размер, а без потери данных менять можно только последнее измерение, а типа нужно первое, тогда массив транспонируется для соответствия.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Application.Transpose иногда удобно использовать для объединения нескольких одномерных массивов в один двумерный, который можно "одним движением" выводить на лист. Вот пример из выложенного мною в топике Dictionary и Collection - это совсем не сложно! файла Dictionary & Collection Objects.XLS. Несколько одномерных массивов (элементов .Items словаря oDict) объединяются в один двумерный массив, пригодный для прямой выгрузки на лист. Повторное транспонирование применено потому, что после первого транспонирования массив будет не так повёрнут на листе:[vba]
Код
Sub testDictArr0() ' словарь массивов Dim oDict: Set oDict = CreateObject("Scripting.Dictionary") ' Создаем словарь With oDict .Add Key:="RUS", Item:=Array("один", "два", "три", "четыре", "пять") .Add Key:="ENG", Item:=Array("one", "two", "three", "four", "five") .Add Key:="GER", Item:=Array("One", "Zwei", "Drei", "Vier", "Funf") ActiveSheet.Cells(1, 1).Resize(.Count, 5).Value = Application.Transpose(Application.Transpose(.Items)) End With End Sub
[/vba]
Application.Transpose иногда удобно использовать для объединения нескольких одномерных массивов в один двумерный, который можно "одним движением" выводить на лист. Вот пример из выложенного мною в топике Dictionary и Collection - это совсем не сложно! файла Dictionary & Collection Objects.XLS. Несколько одномерных массивов (элементов .Items словаря oDict) объединяются в один двумерный массив, пригодный для прямой выгрузки на лист. Повторное транспонирование применено потому, что после первого транспонирования массив будет не так повёрнут на листе:[vba]
Код
Sub testDictArr0() ' словарь массивов Dim oDict: Set oDict = CreateObject("Scripting.Dictionary") ' Создаем словарь With oDict .Add Key:="RUS", Item:=Array("один", "два", "три", "четыре", "пять") .Add Key:="ENG", Item:=Array("one", "two", "three", "four", "five") .Add Key:="GER", Item:=Array("One", "Zwei", "Drei", "Vier", "Funf") ActiveSheet.Cells(1, 1).Resize(.Count, 5).Value = Application.Transpose(Application.Transpose(.Items)) End With End Sub