Масив транспонування VBA

Цей підручник навчить вас транспонувати масив за допомогою VBA.

Транспонувати масив

Ця функція транспонуватиме двовимірний масив:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Функція TransposeArray (MyArray As Variant) як VariantDim x As Long, y As LongDim maxX як довго, minX як довгоDim maxY As Long, minY As LongDim tempArr як варіант`` Отримайте верхню та нижню межіmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Створити новий тимчасовий масивReDim tempArr (від minX до maxX, від minY до maxX)'Перенесіть масивДля x = minX До maxXДля y = minY До maxYtempArr (y, x) = MyArray (x, y)Далі yДалі x'Вихідний масивTransposeArray = tempArrФункція завершенняSub TestTransposeArray ()Затемнити тестArr (1 до 3, 1 до 2) як варіантDim outputArr як варіант'Призначити значення масивуtestArr (1, 1) = "Стів"testArr (1, 2) = "Джонсон"testArr (2, 1) = "Райан"testArr (2, 2) = "Джонсон"testArr (3, 1) = "Андрій"testArr (3, 2) = "Скотт"'Функція транспонування дзвінківoutputArr = TransposeArray (testArr)'Тестовий результатMsgBox outputArr (2, 1)End Sub

Щоб перевірити цю функцію, викликайте процедуру TestTransposeArray: тут створюється початковий масив testArr, а outputArr - остаточний транспонований масив.

Робочий лист Функція. Транспонування

Замість цього, можливо, вам захочеться транспонувати масив у Excel. Для цього можна скористатися функцією Excel Transpose Worksheet.

Ця процедура перенесе 2D -масив в діапазон Excel за допомогою функції Transpose Worksheet:

12345678910111213141516171819202122232425 ПідтестTransposeArray_Worksheetfx ()Dim maxX як довго, minX як довгоDim maxY As Long, minY As Long'Створення масиву та призначення значеньЗатемнити MyArray (1 до 3, 1 до 2) як варіантMyArray (1, 1) = "Стів"MyArray (1, 2) = "Джонсон"MyArray (2, 1) = "Райан"MyArray (2, 2) = "Джонсон"MyArray (3, 1) = "Андрій"MyArray (3, 2) = "Скотт"`` Отримайте верхню та нижню межіmaxX = UBound (MyArray, 1)minX = LBound (MyArray, 1)maxY = UBound (MyArray, 2)minY = LBound (MyArray, 2)'Транспонувати масив в ExcelДіапазон ("a1"). Змінити розмір (maxY - minY + 1, maxX - minX + 1). Значення = _Application.WorksheetFunction.Transpose (MyArray)End Sub

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave