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ā.
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 arMainiet 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āsws. Aktivizēt
ws. AutoFilterMode = False'ignorējiet galveni un kopējiet datus no 2. rindas
Ja šūnas (2, 1) = "", tad pārejiet uz 1Iet 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.
Padariet datu pārvaldību vienkāršu, izmantojot šos Excel makro.
Lasiet Tālāk
- Programmēšana
- Programmēšana
- Microsoft Excel
Gauravam Sijalam ir divu gadu rakstīšanas pieredze, rakstot virknei digitālā mārketinga firmu un programmatūras dzīves cikla dokumentus.
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