Transpunere VBA (pas cu pas) | Top 2 metode de transpunere în VBA

Am văzut funcția de transpunere în foaia de lucru Excel când lipim orice tabel de date în foaia de lucru, ceea ce face transpunerea este că schimbă poziția rândurilor și coloanelor, adică rândurile devin coloane și coloanele devin rânduri într-un tabel de date, acum, deoarece este o foaie de lucru funcția în VBA o folosim cu metoda Application.worksheet în VBA.

Cum se transpune în VBA?

Comutarea rândurilor și coloanelor este una dintre tehnicile de manipulare a datelor pe care aproape toți utilizatorii o fac în Excel. Procesul de conversie a datelor orizontale în date verticale și verticale în orizontală este numit „Transpose” în Excel. Sunt sigur că trebuie să fiți familiarizați cu Transpunerea într-o foaie de lucru obișnuită, în acest articol vă vom arăta cum să utilizați metoda de transpunere în codarea VBA.

Putem transpune în VBA folosind două metode.

  1. Transpuneți folosind formula TRANSPOSE.
  2. Transpuneți folosind metoda specială Lipire.

Când transpunem, schimbăm rândurile pe coloane și coloanele pe rânduri. De exemplu, dacă datele sunt în matrice 4 X 3, atunci acestea devin matrice 3 X 4.

Să vedem câteva exemple de transpunere a coloanei în rând în VBA.

# 1 - Transpunere VBA folosind Formula TRANSPOSE

La fel cum folosim TRANSPOSE în excel în mod similar, putem folosi formula TRANSPOSE și în VBA. Nu avem o formulă TRANSPOSE în VBA, deci trebuie să o folosim în clasa Funcția Foaie de lucru.

Pentru un exemplu, uitați-vă la imaginea de date de mai jos.

Vom încerca să transpunem această serie de valori. Urmați pașii de mai jos pentru a transpune datele.

Pasul 1: Porniți subprocedura

Cod:

 Sub Transpose_Example1 () End Sub 

Pasul 2: Mai întâi trebuie să decidem unde vom transpune datele. În acest sens, am ales să transpun de la celula D1 la H2. Deci, introduceți codul VBA ca Range („D1: H2”). Valoare =

Cod:

 Sub Transpose_Example1 () Range ("D1: H2"). Valoare = End Sub 

Pasul 3: Acum, în intervalul menționat mai sus, avem nevoie de valoarea intervalului A1 până la B5. Pentru a ajunge la această clasă deschisă „Funcție foaie de lucru” și selectați formula „Transpunere”.

Pasul 4: În Arg 1 furnizați domeniul sursei de date, adică Range („A1: D5”) .

Cod:

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

Ok, am terminat cu codificarea formulelor TRANSPOSE. Acum rulați codul pentru a vedea rezultatul în intervalul de celule D1 până la H2.

După cum am văzut imaginea de mai sus, a convertit intervalul de celule de la coloane în rânduri.

# 2 - Transpunere VBA folosind metoda specială Paste

De asemenea, putem transpune folosind metoda Paste Special. Luați în considerare aceleași date și pentru acest exemplu.

Primul lucru pe care trebuie să-l facem pentru a transpune este copierea datelor. Deci, scrieți codul ca Range („A1: B5”). Copiați

Cod:

 Sub Transpose_Example2 () Range ("A1: B5"). Copiați Sub End 

Următorul lucru este că trebuie să decidem unde vom lipi datele. În acest caz, am ales D1 ca celulă de destinație dorită.

Cod:

Sub Transpose_Example2 () Range ("A1: B5"). Copy Range ("D1"). Sfârșitul Sub

Odată selectată celula de destinație dorită, trebuie să selectăm „Lipire metodă specială”.

Cu paste speciale, putem efectua toate acțiunile pe care le avem cu metode speciale de lipire obișnuite într-o foaie de lucru.

Ignorați toți parametrii și selectați ultimul parametru, adică Transpuneți și faceți acest lucru ca ADEVĂRAT.

Cod:

 Sub Transpose_Example2 () Range ("A1: B5"). Copy Range ("D1"). PasteSpecial Transpose: = True End Sub 

Acest lucru va transpune, de asemenea, datele ca metoda anterioară.

Astfel, putem folosi formula TRANSPOSE sau metoda Lipire specială pentru a transpune datele pentru a comuta rândurile în coloane și coloanele în rânduri.

Lucruri de amintit

  • Dacă folosim funcția de foaie de lucru TRANSPOSE, este obligatoriu să calculăm un număr de rânduri și coloane pentru a transpune datele. Dacă avem 5 rânduri și 3 coloane, atunci când transpunem, acestea devin 3 rânduri și 5 coloane.
  • Dacă doriți aceeași formatare în timp ce utilizați paste special, trebuie să utilizați argumentul Tip lipire ca „xlPasteFormats”

Puteți descărca acest șablon VBA Transpose Excel de aici - Șablon VBA Transpose Excel