Транспониране на 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 метод. Помислете за същите данни и за този пример.

Първото нещо, което трябва да направим, за да транспонираме, е да копираме данните. Така че напишете кода като Range (“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 колони.
  • Ако искате същото форматиране, докато използвате специална паста, тогава трябва да използвате аргумента Тип на поставяне като „xlPasteFormats“.

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

Интересни статии...