VBA ülevõtmine - Kuidas kasutada Exceli VBA ülekandmist?

Lang L: none (table-of-contents):

Anonim

VBA ülevõtmine

Kuna olete Microsoft Exceli kasutaja, olete võib-olla sageli kasutanud transpositsioonifunktsiooni, mis võimaldab massiivi vahetada ridade ja veergude vahel. Rea teisendamine veergudeks ja veerud ridadeks on see, mida transponeerimisfunktsioon teie jaoks excelis teeb. Ridade arv muutub veergude arvuks ja vastupidi. Tähendab, kui teie massiivis on 2 rida ja 3 veergu, siis pärast selle ülekandmist muutub see massiiviks, milles on 3 rida ja 2 veergu. Selles õpetuses tutvume VBA ülevõtmisega, mis võimaldab teil automatiseerida ülevõtmismeetodi, mida kasutate Excelis.

Ülevõtmise süntaks Excel VBA-s

VBA transpondi süntaks on järgmine:

Kus,

Arg1 : see on vajalik argument, mis pole midagi muud kui lahtrite vahemik, mida me tahtsime üle kanda (st massiivi).

Süntaksi esimene osa pole midagi muud kui väljend, mille all saab kasutada funktsiooni Transpose. Näiteks WorksheetFunction.

Kuidas kasutada Exceli VBA ülekandmist?

Õpime, kuidas kasutada rakendust Excel VBA mõne näite abil teisaldamist.

Selle VBA ülekande Exceli malli saate alla laadida siit - VBA ülevõtmise Exceli mall

Näide nr 1 - VBA ühemõõtmelise massiivi ülekandmine

Oletame, et töötate andmetega, millel on loendid (mis on ühemõõtmeline massiiv) nagu antud töötaja nimed (“Lalit”, “Sneha”, “Etüül”, “John”, “Cory”) ja soovite seda loendit kleepida Exceli lahtritesse. Vaatame, kuidas seda teha.

VBA-s rakenduse Ühendamine kasutamiseks toimige järgmiselt.

1. samm: sisestage uus moodul ja määratlege uus alaprotseduur makro loomiseks VBA-s.

Kood:

 Alam Trans_ex1 () Lõpp Alam 

2. samm: määratlege uus muutuja, mis mahutab teie ühemõõtmelist massiivi.

Kood:

 Sub Trans_ex1 () Dim Arr1 kui variandi lõpp Sub 

3. samm: määrake loend massiivina, kasutades funktsiooni Massiivi. See oleks nimekiri, mille soovite oma exceli lehele kleepida.

Kood:

 Sub Trans_ex1 () Dim Arr1 Variant Arr1 = Array ("Lalit", "Sneha", "Ethyl", "John", "Cory") End Sub 

4. samm: kasutage nüüd meetodit Range.Value, et määratleda vahemik, millesse need väärtused kleepida soovite.

Kood:

 Sub Trans_ex1 () Dim Arr1 Variant Arr1 = Array ("Lalit", "Sneha", "Ethyl", "John", "Cory") vahemik ("A1: A5"). Value = End Sub 

5. samm: kasutage rakendust Application.WorksheetFunction.Transpordige antud massiivi, et saaksite Arr1 muutuja all määratletud nimekirja üle kanda.

Kood:

 Sub Trans_ex1 () Dim Arr1 Variant Arr1 = Array ("Lalit", "Sneha", "Ethyl", "John", "Cory") vahemik ("A1: A5"). Value = Application.WorksheetFunction.Transpose (Arr1 ) Lõpp alam 

Siinkohal määratlesime koodi, mis võimaldab süsteemil Arr1-nimelises loendimassiivis olevad andmed üle kanda ja seejärel salvestada lahtrisse A1: A5 aktiivsel töölehel.

6. samm: selle koodi käivitamiseks ja aktiivse exceli arvutustabeli väljundi vaatamiseks klõpsake VBE-s F5-nuppu või nuppu Käivita.

Näete, et antud massiivi loendisse kantakse ühte veergu ja salvestatakse lahtrisse A1 kuni A5.

Näide 2 - VBA kahemõõtmelise massiivi ülekandmine

Oletame, et teil on allpool toodud kahemõõtmeline töötajate ja nende palkade loetelu:

See on kahemõõtmeline andmed, millel on kuus rida ja kaks veergu. Pärast ülevõtmist oleks tegemist kahe rea ja kuue veeruga massiiviga.

VBA-s rakenduse Ühendamine kasutamiseks toimige järgmiselt.

1. samm: määratlege makro salvestamiseks alamprotseduur.

Kood:

 Alam Trans_Ex2 () Lõpp Alam 

2. samm: otsustage vahemik, kuhu soovite neid andmeid üle kanda. Seda saab teha funktsiooni Sheets.Range.Value abil. Salvestaksin ülevõetud massiivi lahtrisse D1 kuni I2.

Kood:

 Sub Trans_Ex2 () lehed ("Näide nr 2"). Vahemik ("D1: I2"). Väärtus = Lõpp Sub 

3. samm: kasutage lehte töölehtFunction.Transpose, et funktsiooni ülevõtmiseks saaks määrata massiivi A1: B6.

Kood:

 Sub Trans_Ex2 () lehed ("Näide nr 2"). Vahemik ("D1: I2"). Väärtus = WorksheetFunction.Transpose (End Sub 

4. samm: peame täpsustama funktsiooni Transpose argument. Tahtsime üle võtta rea ​​massiivi A1: B6. Seega kasutage argumendina vahemikku („A1: B6”).

Kood:

 Sub Trans_Ex2 () lehed ("Näide nr 2"). Vahemik ("D1: I2"). Väärtus = WorksheetFunction.Transpose (Range ("A1: B6")) End Sub 

5. samm: selle koodi käivitamiseks ja väljundi nägemiseks klõpsake nuppu F5 või nuppu Käivita.

Siin kantakse massiivi vahemik A1: B6 üle ja salvestatakse massiivi vahemikku D1: I2 VBA teisaldamise funktsiooni abil Excelis.

Näide 3 - VBA massiivi ülekandmine spetsiaalse kleepimismeetodi abil

Samuti võime massiivi üle kleepida ja kleepida nii eriliseks kui ka Excelis, kasutades klahve Alt + E + S. Selle kleepimise erimeetodi abil saame kasutada erinevaid toiminguid.

Vaatleme samu andmeid, mida oleme kasutanud eelmises näites.

VBA-s rakenduse Ühendamine kasutamiseks toimige järgmiselt.

1. samm: määrake makro salvestamiseks alamprotseduur.

Kood:

 Sub Trans_Ex3 () Lõpp Sub 

2. samm: määratlege kaks uut muutujat, üks, mis mahutab andmeallika massiivi (sourceRng) ja teine, mis mahutab väljundmassiivi vahemikku (targetRng).

Kood:

 Sub Trans_Ex3 () Tühjenda allikatRng Nagu Excel.Range Dim taretRng Nagu Excel.Range End Sub 

Pange tähele, et nende muutujate tüüp on määratletud kui (Excel.Range). Sest me tahtsime massiivi vahemiku andmeid üle kanda.

3. samm . Funktsiooni Sheets.Range abil määrake allikavahemikuks A1: B6 (andmed, mille tahtsime üle võtta).

Kood:

 Sub Trans_Ex3 () PimendusallikasRng Nagu Excel.Range PimendusrakendusRng Nagu Excel.Range Määra sourceRng = Lehed ("Näide nr 3"). Vahemik ("A1: B6") Lõpp Sub 

4. samm . Funktsiooni Sheets.Range abil määrake siht- ja sihtvahemik D1: I2 (lahtrite vahemik, kuhu väljund salvestatakse).

Kood:

 Sub Trans_Ex3 () Tühjenda lähtetekstiRng Nagu Excel.Range Tühjenda taretRng Nagu Excel.Range Määra sourceRng = Sheets ("Näide # 3"). Range ("A1: B6") Set targetRng = Sheets ("Näide # 3") Range ( "D1: I2") lõpp Sub 

5. samm. Nüüd kasutage käsku Kopeeri, et kopeerida lähtelehe vahemik oma töölehelt.

Kood:

 Sub Trans_Ex3 () Tühjenda lähtetekstiRng Nagu Excel.Range Tühjenda taretRng Nagu Excel.Range Määra sourceRng = Sheets ("Näide # 3"). Range ("A1: B6") Set targetRng = Sheets ("Näide # 3") Range ( "D1: I2") allikasRng.Koopia lõpp-alam 

6. samm: kavatseme kasutada muutujal targetRng funktsiooni PasteSpecial, et salvestada ülekantud väljund töölehe sihtvahemiku alla (D1: I2).

Kood:

 Sub Trans_Ex3 () Tühjenda lähtetekstiRng Nagu Excel.Range Tühjenda taretRng Nagu Excel.Range Määra sourceRng = Sheets ("Näide # 3"). Range ("A1: B6") Set targetRng = Sheets ("Näide # 3") Range ( "D1: I2") sourceRng.Copy targetRng.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks: = False, Transpose: = True End Sub 
  • Kleebi : võimaldab kleepida väärtused muus vormingus (nt Kleebi väärtustena, Valemiteks, Vorminguna jne). See sarnaneb Exceli omaga (meil on Alt + E + S, et erinevatel kleepimise erivalikutel oleks). Meie näites oleme selle seadnud väärtustena kleepimiseks.
  • Operatsioon : Toiminguid on erinevaid, nagu liitmine, lahutamine, korrutamine, jagamine (samamoodi nagu Excelis).
  • SkipBlanks : kui see on seatud väärtusele True, võimaldab see käsk jätta erinevate andmete kleepimise erioperatsioonide tegemise ajal teie andmetest tühjad vahele. Seadsime selle väärtusele Vale, mis tähendab, et me ei tahtnud tühje asju vahele jätta.
  • Ülevõtmine : kui see on seatud väärtusele Tõene, võimaldab see võtta ette massiivse andmekogu ülevõtmise.

7. samm: käivitage see kood, vajutades nuppu F5 või nuppu Käivita ja vaadake väljundit.

Asjad, mida meeles pidada

  • Ühemõõtmelise massiivi kallal töötades peaks see ülevõtmismeetodi rakendamiseks alati olema horisontaalne (üks rida, mitu veergu).
  • VBA teisaldamise Excelis kasutamise ajal on kohustuslik välja selgitada ridade ja veergude arv. Kui meil on 3 rida ja 5 veergu, oleks pärast ülevõtmist 5 kolme veeruga rida.
  • Tavaliselt ei hõlma ülevõtmismeetod lähteandmete vormindamist. Kui soovite kasutada lähtevormingus sama formaati, peate selle käsitsi seadistama või kasutades kleepimise erisuvandit XlPasteFormat, saate lähteandmete vormingu sihtandmetele hoida.
  • Elementide arv, millesse massiivi saab ülevõtmisfunktsioon, ei tohi ületada 5461.
  • Massiiv ei tohi sisaldada ühtegi üksust / stringi, mille pikkus on üle 255. Kui see on kaasatud, põhjustab see vigu, näiteks 13, tüübi sobimatus, 5, kehtetu protseduurikõne või argument, 1004, rakenduse määratletud või objekti määratletud viga .
  • Lähtemassiiv ei tohi sisaldada ühtegi nullväärtust (näiteks “Null”, “# N / A”).

Soovitatavad artiklid

See on olnud VBA ülevõtmise juhend. Siin arutati, kuidas kasutada rakendust Excel VBA Transpose koos praktiliste näidete ja allalaaditava excelimalliga. Võite vaadata ka meie teisi soovitatud artikleid -

  1. VBA keeltefunktsiooni juhend
  2. Exceli TRANSPOSE valem
  3. Õppige VBA juhtumit Excelis
  4. Eemaldage (kustutage) tühjad read Excelis