Excel VBA on olennainen osa Excel-automaatiota, eikä VBA: n käyttöä ja etuja voi heikentää. Jos olet ylämäessä yrittäessäsi yhdistää useita taulukoita ja työkirjoja Exceliin, olemme täällä auttamassa.

Tässä oppaassa mainitut makrot auttavat sinua suorittamaan ylitsepääsemättömältä vaikuttavan tehtävän muutamassa sekunnissa (tai minuuteissa, jos tietoresurssit ovat suuria).

Seuraamalla tätä opetusohjelmaa voit luoda oman VBA-makrosi Excelissä ja yhdistää useita arkkeja tehokkaasti yhdeksi tiedostoksi.

Useiden Excel-arkkien yhdistäminen yhdeksi tiedostoksi

Tätä tehtävää varten tiedot tallennetaan seuraaville taulukoille:

  • Arkki 1
  • Arkki 2
  • Arkki 3

Yllä luetellut arkkien nimet ovat vain havainnollistavia. Tämä VBA-makro on yleinen eikä riipu taulukoiden nimistä. voit mukauttaa koodia käyttämään sitä minkä tahansa arkin nimen kanssa.

Koodin suorittamisen edellytykset

Alla lueteltujen VBA-koodin suorittamiselle on joitain edellytyksiä.

Sinun on tallennettava makrokoodi uuteen Excel-tiedostoon. Tallenna tämä työkirja a .xlsm laajennus. Voit tallentaa VBA-makrotyökirjan millä tahansa nimellä.

instagram viewer

Avaa uusi Excel-tiedosto; Lehdistö Alt + F11 näppäimistölläsi avataksesi Excel VBA -editorin. Kun editori avautuu, lisää uusi koodimoduuli napsauttamalla Lisää välilehti yläreunassa. Valitse Moduuli lisätäksesi uuden moduulin; tähän kirjoitat alla olevan VBA-makrokoodin.

Yhdistettävät tietolomakkeet tulee olla kokonaan toisessa erillisessä työkirjassa. Työkirjan ja arkkien nimi voi olla mikä tahansa.

Heti kun suoritat VBA-koodin, VBA-makro selaa jokaisen käytettävissä olevan laskentataulukon läpi. ensisijainen työkirja (datatyökirja) ja liitä sen sisältö äskettäin lisättyyn arkkiin työkirja.

Konsolidoidut tiedot ovat saatavilla lomakkeella nimeltä Konsolidoitu.

VBA-koodin suorittaminen

On aika suorittaa äskettäin tallennettu makrokoodi. Kopioi ja liitä tämä koodi VBA-editorin moduuliin:

Sub consolidate_shts()
'ilmoita koodissa käytetyt erilaiset muuttujat ja vba-tietotyypit
Dim sht laskentataulukona, sht1 laskentataulukona, viimeinen rivi kokonaislukuna, viimeinen rivi1 kokonaislukuna
"poista näytön välkkyminen käytöstä ja hälyttävät ponnahdusikkunat suorituksen aikana
Sovelluksen kanssa
.ScreenUpdating = Väärin
.DisplayAlerts = False
Lopeta kanssa
'tallenna ensisijaisen työkirjan nimi makromuuttujaan. Korvaa Test.xlsx ensisijaisen työkirjan nimellä
Set wbk1 = Työkirjat("Test.xlsx")
'aktivoi työkirja ennen kuin suoritat sen toiminnon
wbk1.Aktivoi
"Suorita vba for -silmukka tarkistaaksesi, onko konsolidoitu taulukko jo olemassa. Jos se on olemassa, for-silmukka poistaa sen.
Jokaiselle sht In wbk1.Sheets
Jos sht. Nimi = "Consolidated" Sitten sht. Poistaa
Seuraava sht
'Lisää uusi taulukko tallentaaksesi äskettäin yhdistetyt tiedot
Tehtävätaulukot. Lisätä. Nimi = "konsolidoitu"
"Lisää joitakin otsikoita yhdistetyn taulukon jokaiseen yksittäiseen sarakkeeseen
Sheetsillä ("yhdistetty")
.Range("a1").Arvo = "Tilauspäivämäärä"
.Range("b1").Arvo = "Alue"
.Range("c1").Arvo = "Rep"
.Range("d1").Arvo = "Tuote"
.Range("e1").Arvo = "Yksiköt"
.Range("f1").Arvo = "Yksikköhinta"
.Range("g1").Arvo = "Yhteensä"

Lopeta kanssa
"Äskettäin luotu konsolidoitu taulukko sisältää konsolidoidut tiedot jokaisesta yksittäisestä arkista ensisijaisessa työkirjassa

Jos i = 1 To wbk1.Worksheets. Kreivi
Jos Sheets (i).Nimi <> "Yhdistetty" Sitten
'Kaappaa viimeinen täytetty rivi työkirjan tietosivuilta
lastrow = Sheets (i).Alue("a1").Loppu (xlDown).Rivi
"Kaappaa viimeinen täytetty rivi yhdistetyssä taulukossa
lastrow1 = wbk1.Sheets("Consolidated").Alue("a1048576").Loppu (xlUp).Rivi + 1

Kopioi tiedot lähdearkista ja liitä ne yhdistettyyn taulukkoon
Sheets (i).Alue("a2:g" & viimeinen rivi).Kopioi Destination:=Sheets("Consolidated").Alue("a" & lastrow1)
Loppu Jos
Seuraavaksi minä
'Ota Excel VBA -toiminnot käyttöön tulevaa käyttöä varten
Sovelluksen kanssa
.ScreenUpdating = Totta
.DisplayAlerts = Tosi
Lopeta kanssa

Lopeta ala

VBA-koodi selitetty

Ilmoita ensin kaikki koodissa käyttämäsi muuttujat ja määritä niille oikeat VBA-tietotyypit, jotta koodi toimisi saumattomasti.

Kun olet ilmoittanut muuttujat, tarvitaan perussiivousta. Tämä tehdään poistamalla näytön välkkyminen käytöstä ja estämällä ponnahdusikkunoiden hälytykset. Kun esimerkiksi poistat olemassa olevan taulukon VBA-koodilla, Excelin kehote pyytää vahvistusta ennen taulukon poistamista. Tällaiset kehotteet estetään suoritusnopeuden lisäämiseksi.

Seuraavassa vaiheessa sinun on määritettävä työkirjan nimi, joka sisältää kaikki tietosi. Korvata Test.xlsx työkirjan nimen nimellä ja tunnisteella. Muista ympäröidä nimi lainausmerkeillä.

Aktivoi ensisijainen työkirja ja poista kaikki olemassa olevat arkit, joissa on nimi Konsolidoitu poistaaksesi kaikki aiemmin tallennetut tiedot. VBA-koodi siirtyy jokaisen arkin läpi ja heti, kun se kohtaa arkin nimen Konsolidoitu se poistaa sen. Tämä tehdään käyttämällä VBA IF -lausunto, joka tarkistaa loogiset ehdot ja poistaa taulukon heti, kun ehto täyttyy.

Ensisijaiseen työkirjaan lisätään uusi taulukko konsolidoidun tiedon tallentamiseksi. Myöhemmin esimuotoillut, standardoidut otsikot lisätään tähän taulukkoon. Voit muuttaa otsikoiden (sarakeotsikoiden) arvoja päivittämällä lainausmerkeissä olevien soluviittausten vieressä olevat tiedot.

Esimerkiksi: .Range("a1") = "Tilauspäivämäärä" voidaan korvata .Range("a1") = "TilausNumber"

Seuraavaksi VBA FOR -silmukka vaihtaa jokaisen laskentataulukon läpi, kopioi arkin sisällön ja liittää sisällön Konsolidoitu laskentataulukko ennen siirtymistä työkirjan seuraavaan arkkiin. Tätä prosessia toistetaan, kunnes kaikki arkit on kopioitu.

Tämän prosessin aikana kaikki rivit lasketaan automaattisesti ja liitetään yhdistettyyn taulukkoon. Viimeinen täytetty rivi lasketaan automaattisesti ennen tietojen liittämistä. Makro on dynaaminen ja voi mukautua kunkin laskentataulukon vaihteleviin tietoriveihin.

Aiheeseen liittyvä: Microsoft Excelin lisäominaisuudet, jotka sinun on tiedettävä

Kun tiedot kaikista taulukoista on liitetty pääkonsolidointiarkkiin, makro siirtyy koodin viimeiseen osaan. Aluksi pois käytöstä poistetut VBA-toiminnot otetaan uudelleen käyttöön myöhempää käyttöä varten.

Useiden arkkien yhdistäminen Excel VBA -makrolla

Excel VBA on tarpeeton ohjelmointikieli, joka toimii hyvin kaikkien Excelin komponenttien kanssa. Jokainen koodinpätkä on olennainen, ja on tärkeää muistaa, että suoritus on riippuvainen rivikohtaisesta suoritusjärjestelmästä, joten sinun ei pitäisi muuttaa koodirivien järjestystä.

Voit mukauttaa koodin tarpeidesi mukaan tekemällä tarvittavat muutokset ja suorittamalla tämän koodin konsolidoidaksesi tiedot tehokkaasti ja tehokkaasti sekunneissa.

5 siistiä Microsoft Excel -makroa tietojen lajitteluun

Tee tiedonhallinnasta helppoa näiden Excel-makrojen avulla.

Lue Seuraava

JaaTweetSähköposti
Liittyvät aiheet
  • Ohjelmointi
  • Microsoft Excel
  • Makrot
  • Ohjelmointi
Kirjailijasta
Gaurav Siyal (21 artikkelia julkaistu)

Gaurav Siyalilla on kahden vuoden kirjoituskokemus, joka on kirjoittanut sarjalle digitaalisia markkinointiyrityksiä ja ohjelmistojen elinkaaridokumentteja.

Lisää Gaurav Siyalilta

tilaa uutiskirjeemme

Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja eksklusiivisia tarjouksia!

Klikkaa tästä tilataksesi