Strādājot ar dažādiem datu avotiem, bieži vien var rasties grūtības apkopot vairākas darbgrāmatas un darblapas, pirms nonākat pie viena gala datu gabala. Iedomājieties situāciju, kad jums ir jāapvieno daži simti darbgrāmatu, pirms varat pat sākt savu dienu.

Neviens nevēlas tērēt bezgalīgas stundas, strādājot pie dažādiem avotiem, atverot katru darbgrāmatu, kopējot un ielīmējot datus no dažādām lapām, pirms beidzot izveido vienu konsolidētu darbgrāmatu. Ko darīt, ja VBA makro to var izdarīt jūsu vietā?

Izmantojot šo rokasgrāmatu, varat izveidot savu Excel VBA makro kodu, lai konsolidētu vairākas darbgrāmatas dažu minūšu laikā (ja datu failu ir daudz).

Priekšnosacījumi, lai izveidotu savu VBA makro kodu

VBA koda ievietošanai ir nepieciešama viena darbgrāmata, savukārt pārējās avota datu darbgrāmatas ir atsevišķas. Turklāt izveidojiet vienu darbgrāmatu Konsolidēts lai saglabātu konsolidētos datus no visām darbgrāmatām.

Izveidojiet mapi Konsolidācija vēlamajā vietā, lai saglabātu visas avota darbgrāmatas. Kad makro tiek palaists, tas pārslēgsies pa katru šajā mapē saglabāto darbgrāmatu, kopēs saturu no dažādām lapām un ievietos to konsolidētajā darbgrāmatā.

instagram viewer

Izveidojiet savu Excel VBA kodu

Kad priekšnoteikumi nav izpildīti, ir pienācis laiks iedziļināties kodā un sākt uzlauzt pamatus, lai pielāgotu to savām prasībām.

Saistīts: Papildu Microsoft Excel līdzekļi, kas jums jāzina

Nospiediet Alt+F11 taustiņu programmā Excel, lai atvērtu VBA makro koda redaktoru. Ielīmējiet tālāk rakstīto kodu un saglabājiet failu kā darbgrāmatu ar iespējotu makro (.xlsm pagarinājums).

Apakšatvērtie faili ()

'deklarē VBA kodā izmantotos mainīgos

Dim MyFolder kā virkne, MyFile kā virkne, wbmain kā darbgrāmata, pēdējā rinda tik ilgi

'atspējojiet šīs funkcijas, lai uzlabotu koda apstrādi

Ar pieteikumu
.DisplayAlerts = False
.ScreenUpdating = False
Beigt ar

Mainiet tās mapes ceļu, kurā tiks saglabāti faili

MyFolder = InputBox ("Ievadiet konsolidācijas mapes ceļu") & "\"

'norādiet mapes atsauci makro mainīgajā

MyFile = Dir (MyFolder)

Atveriet cilpu, lai pārlūkotu katru atsevišķu mapē saglabāto darbgrāmatu

Dariet, kamēr Len (MyFile) > 0

'aktivizējiet konsolidācijas darbgrāmatu

Windows ("Konsolidācija"). Aktivizējiet

'aprēķināt pēdējo aizpildīto rindu

Diapazons("a1048576"). Atlasiet
Atlase. Beigas (xlUp).Atlasiet
ActiveCell. Nobīde (1, 0).Atlasiet

'atveriet pirmo darbgrāmatu mapē Konsolidācija

Darba burtnīcas. Atveriet Filename:=MyFolder & MyFile

Windows (MyFile).Aktivizēt

Pārslēdzieties pa katru darbgrāmatu lapu, lai kopētu datus

Dim ws kā darblapa
Katram ws Izklājlapās

ws. Aktivizēt
ws. AutoFilterMode = False

'ignorējiet galveni un kopējiet datus no 2. rindas
Ja šūnas (2, 1) = "", tad pārejiet uz 1

Iet uz 10

1: Nākamais

10: diapazons("a2:az20000").Kopēt

Windows ("Konsolidācija"). Aktivizējiet

'ielīmējiet nokopēto saturu

ActiveSheet. Ielīmēt

Windows (MyFile).Aktivizēt

Kad dati ir ielīmēti, aizveriet atvērto darbgrāmatu

ActiveWorkbook. Aizvērt

'iztukšojiet kešatmiņu, lai saglabātu nākamās darbgrāmatas vērtību

Mans fails = Dir()

Atveriet nākamo failu mapē

Cilpa

'iespējot atspējotās funkcijas turpmākai lietošanai

Ar pieteikumu
.DisplayAlerts = True
.ScreenUpdating = Patiess
Beigt ar

Beigt apakš

Paskaidrots VBA kods

Pirmā koda daļa ir apakšprogrammas definēšana, kurā ir viss jūsu VBA kods. Definējiet apakšprogrammu ar apakš, kam seko koda nosaukums. Apakšvārds var būt jebkas; ideālā gadījumā jums vajadzētu saglabāt nosaukumu, kas atbilst kodam, kuru gatavojaties rakstīt.

Saistīts: Vietnes un emuāri, lai uzzinātu Excel padomus un trikus

Excel VBA saprot lietotāja izveidotos mainīgos un tiem atbilstošos datu tipus, kas deklarēti ar blāvs (izmērs).

Lai palielinātu koda apstrādes ātrumu, varat izslēgt ekrāna atjaunināšanu un izslēgt visus brīdinājumus, jo tas palēnina koda izpildi.

Lietotājam tiks prasīts norādīt tās mapes ceļu, kurā tiek glabāti datu faili. Tiek izveidota cilpa, lai atvērtu katru mapē saglabāto darbgrāmatu, kopētu datus no katras lapas un pievienotu Konsolidācija darba burtnīca.

Konsolidācijas darbgrāmata ir aktivizēta, lai programma Excel VBA varētu aprēķināt pēdējo aizpildīto rindu. Darblapā ir atlasīta pēdējā šūna, un pēdējā rinda tiek aprēķināta darbgrāmatā, izmantojot nobīdes funkciju. Tas ir ļoti noderīgi, ja makro sāk pievienot datus no avota failiem.

Kad cilpa atver pirmo avota failu, filtri tiek noņemti no katras lapas (ja tie pastāv), un dati no A2 līdz AZ20000 tiks kopēti un ielīmēti konsolidācijā. darba burtnīca.

Process tiek atkārtots, līdz visas darbgrāmatas lapas ir pievienotas galvenajā darbgrāmatā.

Saistīts: Labākie tiešsaistes kursi, lai apgūtu Advanced Excel

Visbeidzot, avota fails tiek aizvērts, kad visi dati ir ielīmēti. Tiek atvērta nākamā darbgrāmata, lai VBA makro varētu atkārtot tās pašas darbības nākamajai failu kopai.

Cilpa ir kodēta, lai tā darbotos, līdz visi faili tiek automātiski atjaunināti galvenajā darbgrāmatā.

Uz lietotāju balstīti pielāgojumi

Dažreiz jūs nevēlaties uztraukties par iebūvētajām uzvednēm, it īpaši, ja esat galalietotājs. Ja vēlaties kodēt konsolidācijas mapes ceļu kodā, varat mainīt šo koda daļu:

MyFolder = InputBox ("Ievadiet konsolidācijas mapes ceļu") & "\"

Kam:

MyFolder = "Mapes ceļš" & "\"

Turklāt jūs varat arī mainīt kolonnu atsauces, jo darbība nav iekļauta šajā kodā. Vienkārši nomainiet beigu kolonnas atsauci ar pēdējo aizpildīto kolonnas vērtību (šajā gadījumā AZ). Jums jāatceras, ka pēdējā aizpildītā rinda tiek aprēķināta, izmantojot makro kodu, tāpēc jāmaina tikai kolonnas atsauce.

Lai maksimāli izmantotu šo makro, varat to izmantot tikai, lai konsolidētu darbgrāmatas tādā pašā formātā. Ja struktūras atšķiras, jūs nevarat izmantot šo VBA makro.

Vairāku darbgrāmatu konsolidācija, izmantojot Excel VBA makro

Excel VBA koda izveide un modificēšana ir salīdzinoši vienkārša, it īpaši, ja saprotat dažas nianses kodā. VBA sistemātiski iet cauri katrai koda rindiņai un izpilda to pa rindiņai.

Ja veicat izmaiņas kodā, jums ir jāpārliecinās, ka nemaināt kodu secību, jo tas traucēs koda izpildi.

5 forši Microsoft Excel makro datu kārtošanai

Padariet datu pārvaldību vienkāršu, izmantojot šos Excel makro.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • Microsoft Excel
Par autoru
Gaurav Siyal (19 publicēti raksti)

Gauravam Sijalam ir divu gadu rakstīšanas pieredze, rakstot virknei digitālā mārketinga firmu un programmatūras dzīves cikla dokumentus.

Vairāk no Gaurav Siyal

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu