Erinevate andmeallikatega töötades võib teil sageli olla raskusi mitme töövihiku ja töölehe koostamisega, enne kui jõuate ühe lõpliku andmeüksuseni. Kujutage ette olukorda, kus teil on paarsada töövihikut ühendada, enne kui saate oma päeva isegi alustada.

Keegi ei taha kulutada lõputuid tunde erinevate allikate kallal töötamisele, iga töövihiku avamisele, erinevatelt lehtedelt andmete kopeerimisele ja kleepimisele, enne kui lõpuks teeb ühe koondtöövihiku. Mis siis, kui VBA makro saab seda teie heaks teha?

Selle juhendi abil saate luua oma Exceli VBA makrokoodi, et koondada mitu töövihikut, seda kõike mõne minutiga (kui andmefaile on palju).

Eeltingimused oma VBA makrokoodi loomiseks

VBA-koodi paigutamiseks vajate ühte töövihikut, ülejäänud lähteandmete töövihikud on aga eraldi. Lisaks looge üks töövihik Konsolideeritud kõigi töövihikute konsolideeritud andmete salvestamiseks.

Looge kaust Konsolideerimine teie eelistatud asukohas, et salvestada kõik oma lähtetöövihikud. Kui makro käitatakse, lülitub see läbi iga sellesse kausta salvestatud töövihiku, kopeerib sisu erinevatelt lehtedelt ja paigutab selle konsolideeritud töövihikusse.

instagram viewer

Oma Exceli VBA koodi loomine

Kui eeltingimused on otsas, on aeg koodi süveneda ja hakata häkkima põhitõdesid, et kohandada seda oma vajadustega.

Seotud: Microsoft Exceli täiustatud funktsioonid, mida peate teadma

Vajutage nuppu Alt+F11 klahvi Excelis, et avada VBA makrokoodi redaktor. Kleepige allpool kirjutatud kood ja salvestage fail makro toega töövihikuna (.xlsm laiendus).

Alam avatud failid ()

"deklareerige VBA-koodis kasutatavad muutujad

Dim MyFolder stringina, MyFile stringina, wbmain töövihikuna, lastrow nii pikk

"Keelake need funktsioonid kooditöötluse tõhustamiseks

Koos rakendusega
.DisplayAlerts = Vale
.ScreenUpdating = Vale
Lõpeta

muutke kausta teed, kuhu teie failid salvestatakse

MyFolder = InputBox("Sisestage konsolideerimiskausta tee") & "\"

"määratlege makromuutujas kausta viide

MyFile = Dir (MyFolder)

'avage tsükkel, et sirvida läbi iga kausta salvestatud töövihiku

Tehke, kui Len (Minu fail) > 0

Aktiveerige konsolideerimise töövihik

Windows ("Konsolideerimine"). Aktiveerige

'Arvutage viimane täidetud rida

Vahemik("a1048576").Valige
Valik. Lõpeta (xlUp). Valige
ActiveCell. Nihe (1, 0).Valige

'avage esimene töövihik kaustas Konsolideerimine

Töövihikud. Ava Filename:=MyFolder & MyFile

Windows (MyFile). Aktiveerige

'lülitage andmete kopeerimiseks töövihikutes igal lehel läbi

Dim ws töölehena
Iga ws arvutustabelites

ws. Aktiveerige
ws. AutoFilterMode = Väär

Ignoreeri päist ja kopeeri andmed reast 2
Kui lahtrid (2, 1) = "", siis minge 1

Mine 10

1: Järgmine

10: Vahemik("a2:az20000").Kopeeri

Windows ("Konsolideerimine"). Aktiveerige

kleepige kopeeritud sisu

ActiveSheet. Kleebi

Windows (MyFile). Aktiveerige

Pärast andmete kleepimist sulgege avatud töövihik

Aktiivne tööraamat. Sulge

Tühjendage vahemälu, et salvestada järgmise töövihiku väärtus

Minu fail = Dir()

'avage kaustas järgmine fail

Loop

lubage keelatud funktsioonid edaspidiseks kasutamiseks

Koos rakendusega
.DisplayAlerts = Tõene
.ScreenUpdating = Tõene
Lõpeta

Lõpeta alam

VBA koodi selgitus

Koodi esimene osa määratleb alamprogrammi, mis hoiab kogu teie VBA koodi. Defineerige alamprogramm nupuga alam, millele järgneb koodi nimi. Alamnimi võib olla ükskõik milline; ideaaljuhul peaksite säilitama kirjutatava koodiga seotud nime.

Seotud: Veebisaidid ja ajaveebid Exceli näpunäidete ja näpunäidete õppimiseks

Excel VBA mõistab kasutaja loodud muutujaid ja nende vastavaid andmetüüpe, mis on deklareeritud hämar (mõõde).

Koodi töötlemise kiiruse suurendamiseks saate ekraani värskendamise välja lülitada ja kõik hoiatused maha suruda, kuna see aeglustab koodi täitmist.

Kasutajalt küsitakse andmefailide salvestamise kausta tee. Luuakse tsükkel iga kaustas salvestatud töövihiku avamiseks, andmete kopeerimiseks igalt lehelt ja lisamiseks Konsolideerimine töövihik.

Konsolideerimise töövihik on aktiveeritud, et Excel VBA saaks arvutada viimase täidetud rea. Töölehe viimane lahter valitakse ja töövihiku viimane rida arvutatakse nihkefunktsiooni abil. See on väga kasulik, kui makro hakkab lähtefailidest andmeid lisama.

Kui silmus avab esimese lähtefaili, eemaldatakse filtrid igalt lehelt (kui need olemas) ning andmed vahemikus A2 kuni AZ20000 kopeeritakse ja kleebitakse konsolideerimisse. töövihik.

Protsessi korratakse, kuni kõik töövihiku lehed on põhitöövihikusse lisatud.

Seotud: Parimad veebikursused edasijõudnute Exceli valdamiseks

Lõpuks suletakse lähtefail, kui kõik andmed on kleebitud. Järgmine töövihik avatakse, et VBA-makro saaks korrata samu samme järgmise failikomplekti jaoks.

Silmus on kodeeritud töötama, kuni kõik failid on põhitöövihikus automaatselt värskendatud.

Kasutajapõhised kohandused

Mõnikord ei taha te sisseehitatud viipade pärast muretseda, eriti kui olete lõppkasutaja. Kui soovite pigem kõvasti kodeerida koodis oleva konsolideerimiskausta tee, saate seda koodiosa muuta:

MyFolder = InputBox("Sisestage konsolideerimiskausta tee") & "\"

Kellele:

MyFolder = "Kausta tee" & "\"

Lisaks saate muuta ka veergude viiteid, kuna see samm ei sisaldu selles koodis. Lihtsalt asendage lõpu veeru viide oma viimase täidetud veeru väärtusega (antud juhul AZ). Peate meeles pidama, et viimane täidetud rida arvutatakse makrokoodi kaudu, seega peate muutma ainult veeru viidet.

Selle makro maksimaalseks kasutamiseks saate seda kasutada ainult samas vormingus töövihikute konsolideerimiseks. Kui struktuurid on erinevad, ei saa te seda VBA makrot kasutada.

Mitme töövihiku konsolideerimine Exceli VBA makro abil

Exceli VBA koodi loomine ja muutmine on suhteliselt lihtne, eriti kui mõistate mõnda koodi nüanssi. VBA jookseb süstemaatiliselt läbi iga koodirea ja täidab seda ridade kaupa.

Kui teete koodis muudatusi, peate tagama, et te ei muuda koodide järjekorda, kuna see häirib koodi täitmist.

5 lahedat Microsoft Exceli makrot andmete sortimiseks

Muutke andmehaldus nende Exceli makrode abil imelihtsaks.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • Microsoft Excel
Autori kohta
Gaurav Siyal (19 avaldatud artiklit)

Gaurav Siyal on kaheaastane kirjutamiskogemus, kirjutades mitmetele digitaalse turunduse ettevõtetele ja tarkvara elutsükli dokumentidele.

Rohkem Gaurav Siyalist

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin