Транспониране на VBA (стъпка по стъпка) | Топ 2 метода за транспониране във VBA

Видяхме функцията за транспониране в работен лист на Excel, когато поставяме всяка таблица с данни в работния лист, а това, което транспонира, е, че променя позицията на редове и колони, т.е. редовете стават колони и колоните се превръщат в редове в таблица с данни, тъй като тя е работен лист функция във VBA, ние я използваме с метода Application.worksheet във VBA.

Как да транспонирам във VBA?

Превключването на редове и колони е една от техниките за манипулиране на данни, които почти всички потребители правят в Excel. Процесът на преобразуване на хоризонтални данни във вертикални и вертикални данни в хоризонтални се нарича като „Транспониране“ в Excel. Сигурен съм, че трябва да сте запознати с транспонирането в обикновен работен лист, в тази статия ще ви покажем как да използвате метода за транспониране при кодиране на VBA.

Можем да транспонираме във VBA, като използваме два метода.

  1. Транспонирайте с помощта на формула TRANSPOSE.
  2. Транспонирайте с помощта на специален метод за поставяне.

Когато транспонираме, ние разменяме редове с колони и колони с редове. Например, ако данните са в масив 4 X 3, тогава те стават масив 3 X 4.

Нека да видим няколко примера за транспониране на колона в ред във VBA.

# 1 - Транспониране на VBA с помощта на формула TRANSPOSE

Подобно на това как използваме TRANSPOSE в Excel, по подобен начин можем да използваме формулата TRANSPOSE и във VBA. Нямаме формула TRANSPOSE във VBA, така че трябва да използваме в клас Function Worksheet.

За пример погледнете изображението с данни по-долу.

Ще се опитаме да транспонираме този масив от стойности. Следвайте стъпките по-долу, за да транспонирате данните.

Стъпка 1: Стартирайте подпроцедурата

Код:

 Sub Transpose_Example1 () Край Sub 

Стъпка 2: Първо трябва да решим къде ще транспонираме данните. В това избрах да транспонирам от клетка D1 в H2. Така че, въведете кода на VBA като диапазон (“D1: H2”). Стойност =

Код:

 Sub Transpose_Example1 () Диапазон ("D1: H2"). Стойност = Край Sub 

Стъпка 3: Сега в гореспоменатия диапазон се нуждаем от стойността от диапазон А1 до В5. За да стигнете до този отворен клас „Работен лист“ и изберете формулата „Транспониране“.

Стъпка 4: В Arg 1 предоставете диапазона на източника на данни, т.е. диапазон („A1: D5“) .

Код:

 Sub Transpose_Example1 () Range ("D1: H2"). Value = WorksheetFunction.Transpose (Range ("A1: D5")) End Sub 

Добре, приключихме с кодирането на формула TRANSPOSE. Сега стартирайте кода, за да видите резултата в диапазона от клетки от D1 до H2.

Както видяхме горното изображение, той преобразува диапазона от клетки от колони в редове.

# 2 - Транспониране на VBA с помощта на специален метод за поставяне

Можем също да транспонираме с помощта на Paste Special метод. Помислете за същите данни и за този пример.

Първото нещо, което трябва да направим, за да транспонираме, е да копираме данните. Затова напишете кода като диапазон („A1: B5“)

Код:

 Sub Transpose_Example2 () Диапазон ("A1: B5"). Копиране Край Sub 

Следващото нещо е, че трябва да решим къде ще поставим данните. В този случай съм избрал D1 като желаната клетка-дестинация.

Код:

Sub Transpose_Example2 () Диапазон ("A1: B5"). Копиране на диапазон ("D1"). Крайна под

След като бъде избрана желаната клетка за местоназначение, трябва да изберем „Поставяне на специален метод“.

Със специална паста можем да изпълняваме всички действия, които имаме, с обикновени специални методи за поставяне в работен лист.

Игнорирайте всички параметри и изберете последния параметър, т.е. Транспонирайте и направете това като TRUE.

Код:

 Sub Transpose_Example2 () Диапазон ("A1: B5"). Копиране на диапазон ("D1"). PasteSpecial Transpose: = True End Sub 

Това също ще транспонира данните като предишния метод.

По този начин можем да използваме формулата TRANSPOSE или Paste Special, за да транспонираме данните, за да превключваме редове в колони и колони в редове.

Неща за запомняне

  • Ако използваме функцията за работен лист TRANSPOSE, е задължително да изчислим брой редове и колони за транспониране на данните. Ако имаме 5 реда и 3 колони, тогава при транспонирането става 3 реда и 5 колони.
  • Ако искате същото форматиране, докато използвате специална паста, тогава трябва да използвате аргумента Paste Type като “xlPasteFormats”

Можете да изтеглите този VBA Transpose Excel Template от тук - VBA Transpose Excel Template