VBA Transpose - Kako se koristi Excel VBA Transpose?

Sadržaj:

Anonim

VBA Transpose

Budući da je Microsoft Excel korisnik, često ste koristili funkciju transponiranja koja omogućuje razmjenu redaka i stupaca za niz. Pretvaranje redaka u stupac i stupaca u retke ono je što u programu excel funkcionira funkcija transponiranja. Broj redaka postaje broj stupaca i obrnuto. Znači, ako u svom nizu imate 2 reda i 3 stupca, nakon transponiranja on će se prebaciti u niz s 3 reda i 2 stupca. U ovom ćemo vodiču proći VBA Transpose koji će vam omogućiti da automatizirate način prenošenja koji koristite u Excelu.

Sintaksa transponiranja u Excelu VBA

VBA Transpose ima sljedeću sintaksu:

Gdje,

Arg1 : Traženi je argument koji nije ništa drugo nego niz ćelija koje smo željeli prenijeti (tj. Niz).

Prvi dio sintakse nije ništa drugo nego izraz pod kojim se može koristiti funkcija Transpose. Na primjer, WorksheetFunction.

Kako se koristi Excel VBA Transpose?

Naučit ćemo kako koristiti Transpose s nekoliko primjera u Excelu VBA.

Ovdje možete preuzeti ovaj VBA Transpose Excel predložak - VBA Transpose Excel predložak

Primjer # 1 - VBA Transponiranje jednodimenzionalnog niza

Pretpostavimo da radite na podacima sa popisima (koji je jednodimenzionalni niz) poput imena zaposlenog koji je dan ("Lalit", "Sneha", "Etil", "John", "Cory") i želite ovaj popis biti zalijepljen u excel cell ćeliji. Da vidimo kako to možemo učiniti.

Slijedite dolje navedene korake za upotrebu Transpose u VBA.

Korak 1: Umetnite novi modul i definirajte novi pod-postupak za stvaranje makronaredbe u VBA.

Kodirati:

 Sub Trans_ex1 () Kraj Sub 

Korak 2: Definirajte novu varijablu koja može sadržavati vašu jednodimenzionalnu matricu.

Kodirati:

 Sub Trans_ex1 () Dim Arr1 kao varijanta Kraj Sub 

Korak 3: Popis definirajte kao niz pomoću funkcije Array. Ovo bi bio popis koji ste željeli zalijepiti na excel listu.

Kodirati:

 Sub Trans_ex1 () Dim Arr1 kao varijanta Arr1 = Array ("Lalit", "Sneha", "Ethyl", "John", "Cory") Kraj Sub 

Korak 4: Sada pomoću metode Range.Value definirajte raspon u koji su te vrijednosti željene zalijepiti.

Kodirati:

 Sub Trans_ex1 () Dim Arr1 kao varijanta Arr1 = Array (raspon "Lalit", "Sneha", "Ethyl", "John", "Cory") ("A1: A5"). Vrijednost = Kraj sub 

Korak 5: Upotrijebite Application.WorksheetFunction.Preložite zadani niz kako biste mogli prenijeti popis definiran u varijabli Arr1.

Kodirati:

 Sub Trans_ex1 () Dim Arr1 kao varijanta Arr1 = Array (raspon "Lalit", "Sneha", "Ethyl", "John", "Cory") ("A1: A5"). Vrijednost = Application.WorksheetFunction.Transpose (Arr1 ) Kraj Sub 

Ovdje smo definirali kôd koji će sustavu omogućiti da transponira podatke u nizu popisa nazvanih Arr1, a zatim ih pohrani u ćeliju A1: A5 na aktivnom radnom listu.

Korak 6: Pritisnite tipku F5 ili Pokreni pod VBE da biste pokrenuli ovaj kôd i pogledali izlaz pod aktivnom proračunskom tablicom Excela.

Možete vidjeti da je odabrani niz popisa transponiran u jedan stupac i pohranjen u ćeliji A1 do A5.

Primjer br. 2 - VBA Transponiranje dvodimenzionalnog niza

Pretpostavimo da imate dvodimenzionalni niz zaposlenika i njihove plaće kao što slijedi:

Ovo su dvodimenzionalni podaci sa šest redaka i dva stupca. Nakon transponiranja to bi bio niz s dva reda i šest stupaca.

Slijedite dolje navedene korake za upotrebu Transpose u VBA.

Korak 1: Definirajte pod postupak da pohranite makronaredbu.

Kodirati:

 Sub Trans_Ex2 () Kraj Sub 

Korak 2: Odredite raspon u koji želite prenijeti te podatke. To se može učiniti pomoću Sheets.Range.Value funkcije. Spremio bih transponirani niz u ćeliju D1 do I2.

Kodirati:

 Sub Trans_Ex2 () listovi ("primjer # 2"). Raspon ("D1: I2"). Vrijednost = kraj sub 

Korak 3: Upotrijebite WorksheetFunction.Transpose da biste mogli dodijeliti niz A1: B6 za prijenos funkcije.

Kodirati:

 Sub Trans_Ex2 () listovi ("Primjer # 2"). Raspon ("D1: I2"). Vrijednost = WorksheetFunction.Transpose (Kraj sub 

Korak 4: Trebamo odrediti argument za funkciju Transpose. Željeli smo prenijeti raspon niza A1: B6. Stoga kao argument koristite raspon („A1: B6“).

Kodirati:

 Sub Trans_Ex2 () listovi ("primjer # 2"). Raspon ("D1: I2"). Vrijednost = WorksheetFunction.Transpose (raspon ("A1: B6")) Kraj Sub 

Korak 5: Pritisnite tipku F5 ili Run da biste pokrenuli ovaj kod i pogledali izlaz.

Ovdje se raspon niza A1: B6 transponira i sprema u raspon niza D1: I2 uz pomoć VBA funkcije transponovanja u excelu.

Primjer # 3 - VBA Transponiranje matrice posebnim postupkom

Također možemo prenijeti niz i zalijepiti kao posebno u Excelu koristeći Alt + E + S. U ovoj posebnoj metodi paste možemo koristiti različite operacije.

Razmotrimo iste podatke kao i u prethodnom primjeru.

Slijedite dolje navedene korake za upotrebu Transpose u VBA.

Korak 1: Definirajte pod postupak da pohranite makronaredbu.

Kodirati:

 Sub Trans_Ex3 () Kraj Sub 

Korak 2: Definirajte dvije nove varijable, jednu koja može sadržavati polje izvora podataka (sourceRng) i druge koje mogu sadržavati raspon izlazne matrice (targetRng).

Kodirati:

 Sub Trans_Ex3 () Dim izvorRng Kao Excel.Range Dim taretRng Kao Excel.Range Kraj Sub 

Napominjemo da je vrsta ovih varijabli definirana kao (Excel.Range). Jer smo željeli prenijeti podatke koji su raspon niza.

Korak 3: Područje izvora postavite na A1: B6 (Podaci koje smo željeli preuzeti) pomoću funkcije Sheets.Range.

Kodirati:

 Sub Trans_Ex3 () Dim izvorRng Kao Excel.Range Dim taretRng Kao Excel.Range Set sourceRng = Sheets ("Primjer # 3"). Raspon ("A1: B6") Kraj Sub 

Korak 4: Postavite ciljni / odredišni raspon kao D1: I2 (raspon ćelija u kojima će se pohraniti izlaz) pomoću funkcije Sheets.Range.

Kodirati:

 Pod Trans_Ex3 () Dim izvorRng Kao Excel.Range Dim taretRng Kao Excel.Range Postavi sourceRng = Sheets ("Primjer # 3"). Raspon ("A1: B6") Postavi targetRng = Sheets ("Primjer # 3"). "D1: I2") Kraj Sub 

Korak 5: Sada upotrijebite naredbu Kopiraj da kopirate raspon izvornih podataka s radnog lista.

Kodirati:

 Pod Trans_Ex3 () Dim izvorRng Kao Excel.Range Dim taretRng Kao Excel.Range Postavi sourceRng = Sheets ("Primjer # 3"). Raspon ("A1: B6") Postavi targetRng = Sheets ("Primjer # 3"). "D1: I2") izvorRng.Kopiraj kraj Sub 

Korak 6: Upotrijebit ćemo funkciju PasteSpecial na promjenjivom targetRngu da spremimo transponirani izlaz ispod ciljanog raspona (D1: I2) na vaš radni list.

Kodirati:

 Pod Trans_Ex3 () Dim izvorRng Kao Excel.Range Dim taretRng Kao Excel.Range Postavi sourceRng = Sheets ("Primjer # 3"). Raspon ("A1: B6") Postavi targetRng = Sheets ("Primjer # 3"). "D1: I2") sourceRng.Kopiraj targetRng.PasteSpecial paste: = xlPasteValues, rad: = xlNone, SkipBlanks: = False, Transpose: = True End Sub 
  • Lijepljenje : Omogućuje lijepljenje vrijednosti u različit format (poput lijepljenja kao vrijednosti, formula, formata itd.). To je slično kao u Excelu (Mi radimo Alt + E + S da imamo različite opcije zalijepljenja). U našem primjeru postavili smo ga da zalijepi kao vrijednosti.
  • Operacija : Postoje različite operacije koje se mogu izvesti kao zbrajanje, oduzimanje, množenje, dijeljenje (na isti način kao u Excelu).
  • SkipBlanks : Ako je postavljeno True, ova naredba omogućava preskočiti praznine ako postoje iz vaših podataka, a pritom radite različite operacije posebne paste. Postavili smo je na False, znači da ne želimo preskočiti praznine.
  • Transpose : Ako je postavljeno True, omogućava prenošenje niza podataka.

Korak 7: Pokrenite ovaj kod pritiskom na tipku F5 ili Run i pogledajte izlaz.

Stvari koje treba zapamtiti

  • Dok radite na jednodimenzionalnom nizu, uvijek treba biti vodoravni (jedan red, više stupaca) kako bi se primijenila metoda transponiranja.
  • Obavezno je saznati broj redaka i broj stupaca tijekom upotrebe VBA Transpose u Excelu. Ako imamo 3 reda i 5 stupaca, nakon transponiranja bilo bi 5 redaka s tri stupca.
  • Metoda Transpose obično ne uključuje oblikovanje izvornih podataka. Ako želite primijeniti isti format kao i izvorni podaci, morate ga ručno podesiti ili pomoću posebne opcije XlPasteFormat zalijepiti moći ćete zadržati format izvornih podataka na ciljne podatke.
  • Broj elemenata koje funkcija Transpose može uzeti u nizu ne može prelaziti 5461.
  • Niz ne može sadržavati nijednu stavku / niz duljine veće od 255. Ako je uključen, uzrokovat će pogreške poput 13, neusklađivanje tipa, 5, nevaljani poziv ili argument postupka 1004, pogreška definirana aplikacijom ili definirana objektom .
  • Izvorni niz ne može sadržavati nijednu nulotnu vrijednost (poput "Null", "# N / A").

Preporučeni članci

Ovo je bio vodič kroz VBA Transpose. Ovdje smo raspravljali o tome kako koristiti Excel VBA Transpose uz praktične primjere i preuzeti Excel predložak. Možete i pregledati naše druge predložene članke -

  1. Vodič za VBA funkciju niza
  2. Excel TRANSPOSE formula
  3. Saznajte VBA slučaj u Excelu
  4. U Excelu uklonite (izbriši) prazne redove