ВБА Транспосе

Будући да је Мицрософт Екцел корисник, често сте користили функцију транспонирања која омогућава пребацивање између редака и ступаца за низ. Претварање редова у ступац и ступаца у редове оно је што функција транспонирања чини за вас у екцелу. Број редова постаје број ступаца и обрнуто. Значи, ако у свом низу имате 2 реда и 3 колоне, након транспонирања он ће се променити у низ са 3 реда и 2 колоне. У овом туториалу ћемо проћи кроз ВБА Транспосе који ће вам омогућити да аутоматизујете метод преноса који користите у Екцелу.

Синтакса транспонирања у Екцелу ВБА

ВБА Транспосе има следећу синтаксу:

Где,

Арг1 : Тражени је аргумент који није ништа друго него низ ћелија које смо желели да транспонујемо (тј. Низ).

Први део синтаксе није ништа друго него израз под којим се може користити функција Транспосе. На пример, ВорксхеетФунцтион.

Како се користи Екцел ВБА Транспосе?

Научићемо како користити Транспосе са неколико примера у Екцелу ВБА.

Овде можете преузети овај ВБА Транспосе Екцел предложак овде - ВБА Транспосе Екцел предложак

Пример # 1 - ВБА Транспонирање једнодимензионалног низа

Претпоставимо да радите на подацима са списковима (који је једнодимензионални низ) као што су имена запосленог дате („Лалит“, „Снеха“, „Етил“, „Јохн“, „Цори“) и желите да вам ова листа да буде залепљено у екцел ћелији. Да видимо како то можемо.

Следите доле наведене кораке да бисте користили Транспосе у ВБА.

Корак 1: Уметните нови модул и дефинишите нови под-поступак за креирање макроа у ВБА.

Шифра:

 Суб Транс_ек1 () Крај Суб 

Корак 2: Дефинишите нову променљиву која може да држи вашу једнодимензионалну матрицу.

Шифра:

 Суб Транс_ек1 () Дим Арр1 као варијанта Крај Суб 

Корак 3: Дефинишите листу као низ помоћу функције Арраи. Ово би била листа коју сте желели залепити у свој екцел лист.

Шифра:

 Суб Транс_ек1 () Дим Арр1 као варијанта Арр1 = Арраи ("Лалит", "Снеха", "Етхил", "Јохн", "Цори") Енд Суб 

Корак 4: Сада помоћу методе Ранге.Валуе дефинирајте распон у који су те вриједности жељене залијепити.

Шифра:

 Суб Транс_ек1 () Дим Арр1 као варијанта Арр1 = Арраи (распон "Лалит", "Снеха", "Етхил", "Јохн", "Цори") ("А1: А5"). Вредност = Крај суб 

Корак 5: Употријебите Апплицатион.ВорксхеетФунцтион.Положите на дани низ како бисте могли транспонирати листу дефинирану у варијабли Арр1.

Шифра:

 Суб Транс_ек1 () Дим Арр1 као варијанта Арр1 = Арраи (распон "Лалит", "Снеха", "Етхил", "Јохн", "Цори") ("А1: А5"). Вредност = Апплицатион.ВорксхеетФунцтион.Транспосе (Арр1 ) Енд Суб 

Овде смо дефинисали код који ће омогућити систему да транспонује податке у низу листа званих Арр1, а затим да их похрани у ћелију А1: А5 на активном радном листу.

Корак 6: Притисните типку Ф5 или Рун под ВБЕ да бисте покренули овај код и погледали излаз под активном екцел прорачунском таблицом.

Можете видети да је одређени низ листа транспониран у једну колону и смештен у ћелију А1 до А5.

Пример # 2 - ВБА Транспонирање дводимензионалног низа

Претпоставимо да имате дводимензионални низ запослених и њихове плате као испод:

Ово је дводимензионални податак са шест редова и два колона. Након транспонирања, то би био низ са два реда и шест ступаца.

Следите доле наведене кораке да бисте користили Транспосе у ВБА.

Корак 1: Дефинишите под-поступак за чување макроа.

Шифра:

 Суб Транс_Ек2 () Крај Суб 

Корак 2: Одредите опсег у који желите да пренесете ове податке. Може се обавити помоћу функције Схеетс.Ранге.Валуе. Спремио бих транспонирани низ у ћелију Д1 до И2.

Шифра:

 Суб Транс_Ек2 () листови ("Пример бр. 2"). Распон ("Д1: И2"). Вредност = Крај суб 

Корак 3: Користите ВорксхеетФунцтион.Транспосе да бисте могли доделити низ А1: Б6 за пренос функције.

Шифра:

 Суб Транс_Ек2 () листови ("Пример # 2"). Распон ("Д1: И2"). Вредност = ВорксхеетФунцтион.Транспосе (Крај Пот 

Корак 4: Требамо одредити аргумент за функцију Транспосе. Желели смо да транспонујемо распон низа А1: Б6. Стога користите распон („А1: Б6“) као аргумент.

Шифра:

 Суб Транс_Ек2 () листови ("Пример # 2"). Распон ("Д1: И2"). Вредност = ВорксхеетФунцтион.Транспосе (домет ("А1: Б6")) Крај Суб 

Корак 5: Притисните типку Ф5 или Рун да бисте покренули овај код и погледали излаз.

Овде се распон низа А1: Б6 транспонује и смешта у распон низа Д1: И2 уз помоћ ВБА функције транспоновања у екцелу.

Пример бр. 3 - ВБА Транспонирање матрице посебним поступком

Такођер можемо пренијети низ и залијепити као посебно у Екцел-у користећи Алт + Е + С. Под овом посебном методом пасте можемо користити различите операције.

Размотримо исте податке као и у претходном примеру.

Следите доле наведене кораке да бисте користили Транспосе у ВБА.

Корак 1: Дефинишите под-поступак за чување макроа.

Шифра:

 Суб Транс_Ек3 () Крај Суб 

Корак 2: Дефинишите две нове променљиве, једну која може да садржи матрицу извора података (соурцеРнг) и другу која може да држи распон излазне матрице (таргетРнг).

Шифра:

 Суб Транс_Ек3 () Дим изворРнг Као Екцел.Ранге Дим таретРнг Као Екцел.Ранге Крај Суб 

Имајте на уму да је тип ових променљивих дефинисан као (Екцел.Ранге). Јер смо желели да транспонујемо податке који су распон низа.

Корак 3: Подесите изворни опсег као А1: Б6 (Подаци које смо желели да преузмемо) помоћу функције Схеетс.Ранге.

Шифра:

 Суб Транс_Ек3 () Дим изворРнг Као Екцел.Ранге Дим таретРнг Као Екцел.Ранге Постави соурцеРнг = Схеетс ("Пример # 3"). Распон ("А1: Б6") Крај Суб 

Корак 4: Подесите циљни / одредишни распон као Д1: И2 (распон ћелија у којима ће се излаз чувати) помоћу функције Схеетс.Ранге.

Шифра:

 Под Транс_Ек3 () Дим изворРнг Као Екцел.Ранге Дим таретРнг Као Екцел.Ранге Постави соурцеРнг = Схеетс ("Пример # 3"). Распон ("А1: Б6") Подеси таргетРнг = Схеетс ("Пример # 3"). "Д1: И2") Крај Суб 

Корак 5: Сада користите команду Цопи да копирате распон изворних података с радног листа.

Шифра:

 Под Транс_Ек3 () Дим изворРнг Као Екцел.Ранге Дим таретРнг Као Екцел.Ранге Постави соурцеРнг = Схеетс ("Пример # 3"). Распон ("А1: Б6") Подеси таргетРнг = Схеетс ("Пример # 3"). "Д1: И2") изворРнг.Копирај крај Суб 

Корак 6: Користићемо функцију ПастеСпециал на променљивом таргетРнг да спремимо транспонирани излаз испод циљаног распона (Д1: И2) на ваш радни лист.

Шифра:

 Под Транс_Ек3 () Дим изворРнг Као Екцел.Ранге Дим таретРнг Као Екцел.Ранге Постави соурцеРнг = Схеетс ("Пример # 3"). Распон ("А1: Б6") Подеси таргетРнг = Схеетс ("Пример # 3"). "Д1: И2") соурцеРнг.Цопи таргетРнг.ПастеСпециал Пасте: = клПастеВалуес, Операција: = клНоне, СкипБланкс: = Фалсе, Транспосе: = Труе Енд Суб 
  • Налепи : Омогућава лепљење вредности у различитом формату (на пример, Налепи као вредности, као формуле, као формат итд.). Слично је као у Екцелу (Ми радимо Алт + Е + С да имамо различите опције за посебну пасту). У нашем примјеру поставили смо га да залијепи као вриједности.
  • Операција : Постоје различите операције које се могу извести као сабирање, одузимање, множење, дељење (на исти начин као у Екцелу).
  • СкипБланкс : Ако је постављено Труе, ова наредба омогућава прескакање празних празнина из ваших података, док обављате различите операције посебне пасте. Поставили смо је на Фалсе, значи да смо желели да не прескочимо празнине.
  • Транспосе : Ако је постављено Труе, дозвољава преношење низа података.

Корак 7: Покрените овај код притиском на Ф5 или Рун дугме и погледајте излаз.

Ствари које треба запамтити

  • Док радите на једнодимензионалном низу, увек треба да буде водоравни (један ред, више ступаца) да би се применила метода транспонирања.
  • Обавезно је сазнати број редова и број ступаца док користите ВБА Транспосе у Екцел-у. Ако имамо 3 реда и 5 ступаца, након транспонирања било би 5 редова са три ступца.
  • Обично метода Транспосе не укључује форматирање изворних података. Ако желите да примените исти формат као и изворни подаци, морате га ручно подесити или помоћу посебне пасте КслПастеФормат залепити моћи ћете да задржите формат изворних података на циљне податке.
  • Број елемената које функција Транспосе може да преузме у низу не може бити већи од 5461.
  • Низ не може садржавати ниједну ставку / низ дужине веће од 255. Ако је укључен, проузроковаће грешке као што су 13, Тип Мисматцх, 5, Неважећи позив или аргумент поступка, 1004, апликација дефинисана или грешка дефинисана објектом .
  • Изворни низ не може садржавати ниједну нулотну вредност (попут "Нулл", "# Н / А").

Препоручени чланци

Ово је водич за ВБА Транспосе. Овде смо расправљали о томе како користити Екцел ВБА Транспосе заједно са практичним примерима и бесплатним екцел шаблоном. Можете и да прођете кроз друге наше предложене чланке -

  1. Водич за ВБА функцију жице
  2. Екцел ТРАНСПОСЕ Формула
  3. Сазнајте ВБА случај у Екцелу
  4. Уклоните (Избриши) празне редове у Екцелу

Категорија: