Kun työskentelet erilaisten tietolähteiden kanssa, saatat usein vaikeuksia koota useita työkirjoja ja laskentataulukoita ennen kuin pääset yhteen lopulliseen tietoon. Kuvittele tilanne, jossa sinulla on muutama sata työkirjaa yhdistettävänä ennen kuin voit edes aloittaa päiväsi.

Kukaan ei halua viettää loputtomasti tunteja eri lähteiden parissa työskentelemiseen, jokaisen työkirjan avaamiseen, tietojen kopioimiseen ja liittämiseen eri arkeilta ennen kuin lopulta tehdään yksi konsolidoitu työkirja. Mitä jos VBA-makro voi tehdä tämän puolestasi?

Tämän oppaan avulla voit luoda oman Excel VBA -makrokoodin useiden työkirjojen yhdistämiseksi muutamassa minuutissa (jos datatiedostoja on paljon).

Edellytykset oman VBA-makrokoodin luomiseen

Tarvitset yhden työkirjan VBA-koodin säilyttämiseen, kun taas muut lähdetietotyökirjat ovat erillisiä. Luo lisäksi yksi työkirja Konsolidoitu tallentaaksesi yhdistetyt tiedot kaikista työkirjoistasi.

Luo kansio Konsolidointi haluamassasi paikassa tallentaaksesi kaikki lähdetyökirjasi. Kun makro suoritetaan, se vaihtaa jokaisen tähän kansioon tallennettuun työkirjaan, kopioidaan sisällön eri taulukoista ja sijoittaa sen yhdistettyyn työkirjaan.

Oman Excel VBA -koodin luominen

Kun edellytykset ovat poissa tieltä, on aika syventyä koodiin ja alkaa hakkeroida perusasiat mukauttaaksesi sitä vaatimuksiisi.

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

paina Alt+F11 näppäin Excelissä avataksesi VBA-makrokoodieditorin. Liitä alla kirjoitettu koodi ja tallenna tiedosto makrokäyttöisenä työkirjana (.xlsm laajennus).

Ali avoimet tiedostot()

'ilmoita VBA-koodissa käytetyt muuttujat

Dim MyFolder merkkijonona, MyFile merkkijonona, wbmain työkirjana, viimeinen rivi yhtä pitkä

Poista nämä toiminnot käytöstä koodinkäsittelyn tehostamiseksi

Sovelluksen kanssa
.DisplayAlerts = False
.ScreenUpdating = Väärin
Lopeta kanssa

Muuta sen kansion polkua, johon tiedostosi tallennetaan

MyFolder = InputBox("Anna konsolidointikansion polku") & "\"

'määritä kansion viite makromuuttujassa

MyFile = Dir (MyFolder)

Avaa silmukka selataksesi jokaista kansioon tallennettua työkirjaa

Tee kun Len (Omatiedosto) > 0

Aktivoi yhdistämistyökirja

Windows("Yhdistäminen"). Aktivoi

'laske viimeinen täytetty rivi

Alue("a1048576").Valitse
Valinta. Lopeta (xlUp).Valitse
ActiveCell. Offset (1, 0).Valitse

Avaa ensimmäinen työkirja Consolidation-kansiosta

Työkirjat. Avaa Filename:=MyFolder & MyFile

Windows (MyFile). Aktivoi

Kopioi tiedot siirtymällä työkirjojen jokaisen arkin läpi

Dim ws As Worksheet
Jokaiselle ws taulukoissa

ws. Aktivoida
ws. AutoFilterMode = False

Ohita otsikko ja kopioi tiedot riviltä 2
Jos solut (2, 1) = "" Siirry sitten 1

Siirry kohtaan 10

1: Seuraava

10: Alue("a2:az20000"). Kopioi

Windows("Yhdistäminen"). Aktivoi

'liitä kopioitu sisältö

ActiveSheet. Liitä

Windows (MyFile). Aktivoi

Sulje avoin työkirja, kun tiedot on liitetty

ActiveWorkbook. kiinni

'tyhjennä välimuisti tallentaaksesi seuraavan työkirjan arvon

MyFile = Dir()

'avaa kansion seuraava tiedosto

Silmukka

Ota käytöstä poistetut toiminnot käyttöön tulevaa käyttöä varten

Sovelluksen kanssa
.DisplayAlerts = Tosi
.ScreenUpdating = Totta
Lopeta kanssa

Lopeta ala

VBA-koodi selitetty

Koodin ensimmäinen osa määrittää aliohjelman, joka sisältää kaiken VBA-koodisi. Määritä aliohjelma komennolla sub, jota seuraa koodin nimi. Alanimi voi olla mikä tahansa; Ihannetapauksessa sinun tulisi säilyttää nimi, joka liittyy kirjoittamaasi koodiin.

Aiheeseen liittyvä: Web-sivustot ja blogit, joiden avulla voit oppia Excel-vinkkejä ja temppuja

Excel VBA ymmärtää käyttäjien luomat muuttujat ja niitä vastaavat tietotyypit, joilla on ilmoitettu himmeä (ulottuvuus).

Parantaaksesi koodisi käsittelynopeutta, voit sammuttaa näytön päivityksen ja estää kaikki hälytykset, koska tämä hidastaa koodin suorittamista.

Käyttäjältä kysytään sen kansion polkua, johon datatiedostot on tallennettu. Luodaan silmukka avaamaan jokainen kansioon tallennettu työkirja, kopioimaan tiedot kustakin arkista ja liittämään ne Konsolidointi työkirja.

Konsolidointityökirja aktivoidaan, jotta Excel VBA voi laskea viimeisen täytetyn rivin. Laskentataulukon viimeinen solu valitaan ja viimeinen rivi lasketaan työkirjan sisällä offset-funktiolla. Tämä on erittäin hyödyllistä, kun makro alkaa liittää tietoja lähdetiedostoista.

Kun silmukka avaa ensimmäisen lähdetiedoston, suodattimet poistetaan jokaiselta arkilta (jos ne olemassa), ja tiedot A2:sta AZ20000:een kopioidaan ja liitetään konsolidointiin. työkirja.

Prosessi toistetaan, kunnes kaikki työkirjan arkit on liitetty päätyökirjaan.

Aiheeseen liittyvä: Parhaat online-kurssit edistyneen Excelin hallitsemiseen

Lopuksi lähdetiedosto suljetaan, kun kaikki tiedot on liitetty. Seuraava työkirja avataan, jotta VBA-makro voi toistaa samat vaiheet seuraavalle tiedostojoukolle.

Silmukka on koodattu toimimaan, kunnes kaikki tiedostot päivitetään automaattisesti päätyökirjaan.

Käyttäjäkohtaiset mukautukset

Joskus et halua huolehtia sisäänrakennetuista kehotteista, varsinkin jos olet loppukäyttäjä. Jos haluat mieluummin koodata Consolidation-kansion polun koodissa, voit muuttaa tätä koodin osaa:

MyFolder = InputBox("Anna konsolidointikansion polku") & "\"

Vastaanottaja:

MyFolder = "Kansion polku" & "\"

Lisäksi voit myös muuttaa sarakeviittauksia, koska vaihe ei sisälly tähän koodiin. Korvaa vain loppusarakkeen viittaus viimeksi täytetyllä sarakkeen arvolla (tässä tapauksessa AZ). Muista, että viimeksi täytetty rivi lasketaan makrokoodin avulla, joten sinun on vaihdettava vain sarakeviittaus.

Jotta saat kaiken irti tästä makrosta, voit käyttää sitä vain samassa muodossa olevien työkirjojen yhdistämiseen. Jos rakenteet ovat erilaiset, et voi käyttää tätä VBA-makroa.

Useiden työkirjojen yhdistäminen Excel VBA -makrolla

Excel VBA -koodin luominen ja muokkaaminen on suhteellisen helppoa, varsinkin jos ymmärrät joitain koodin vivahteita. VBA juoksee systemaattisesti jokaisen koodirivin läpi ja suorittaa sen rivi riviltä.

Jos teet muutoksia koodiin, varmista, että et muuta koodien järjestystä, koska se häiritsee koodin suorittamista.

5 siistiä Microsoft Excel -makroa tietojen lajitteluun

Tee tiedonhallinnasta helppoa näiden Excel-makrojen avulla.

Lue Seuraava

JaaTweetSähköposti
Liittyvät aiheet
  • Ohjelmointi
  • Ohjelmointi
  • Microsoft Excel
Kirjailijasta
Gaurav Siyal (19 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