Rakurstabulas programmā Excel ir ļoti svarīgas, lai padarītu datus vieglāk saprotamus un saprotamus. Rakurstabula var apkopot un apkopot datus jēgpilnās struktūrās. MS Excel lietotāji tos ir plaši pieņēmuši datu nozarē.

Vai zinājāt, ka varat automatizēt savas rakurstabulas programmā Excel un izveidot tās ar vienu klikšķi? MS Excel labi integrējas ar VBA un ir kļuvis par lielisku rīku atkārtotu uzdevumu automatizēšanai.

Lūk, kā jūs varat automatizēt rakurstabulu ar makro programmā MS Excel VBA.

Izmantojiet prakses datu kopu

Jūs varat lejupielādēt un izmantot manekenu datu kopa no Tableau lai ievērotu VBA skriptu šajā rokasgrāmatā. VBA kods darbosies ar jebkuru citu datu kopu, veicot dažus pamata pielāgojumus. Pirms sākat, pārliecinieties, ka jums ir iespējotiem makro jūsu Excel darbgrāmatā.

Rakurstabulā varat izmantot dažas būtiskas kolonnas. Lai saprastu tabulas nianses un galīgo struktūru, varat manuāli izveidojiet pamata rakurstabulu ar šādiem elementiem:

  • Filtrs: Novads
  • Rindas: Apakškategorija
  • Kolonnas: Valsts
  • Vērtības: Pārdošana

Gala šarnīram vajadzētu izskatīties šādi:

Tomēr varat ļaut VBA to izdarīt automātiski, nevis sagatavot manuāli.

Kā automātiski izveidot rakurstabulas programmā Excel

Lai automatizētu rakurstabulas, izmantojot VBA, atveriet jaunu Excel failu un pārdēvējiet lapas, kā norādīts tālāk.

  • Pirmā lapa: Makro
  • Otrā lapa: Dati

The Makro lapa satur makro skriptu, savukārt Dati lapa satur jūsu datus. Makro lapā varat ievietot jebkuru formu pēc savas izvēles un piešķirt tai makro. Ar peles labo pogu noklikšķiniet uz formas un noklikšķiniet uz Piešķirt makro.

Nākamajā dialoglodziņā noklikšķiniet uz sava makro nosaukuma un noklikšķiniet uz Labi. Šī darbība piešķir makro formai.

1. Atveriet Excel VBA kodēšanas redaktoru

Nospiediet Alt + F11 lai atvērtu koda redaktoru. Kad esat koda redaktorā, ar peles labo pogu noklikšķiniet uz faila nosaukuma un pēc tam uz Ievietot un Modulis. Ir svarīgi atcerēties, ka pirms moduļa izpildes jūs ierakstīsit visu VBA kodu.

Laba prakse ir izmantot moduļa nosaukumu, kas sasaucas ar koda mērķi. Tā kā šī ir demonstrācija, moduļa nosaukumu varat definēt šādi:

sub pivot_demo()

Moduļa nosaukums beidzas ar Beigt apakš, kas ir moduļa beigu komanda:

Beigas Apakš

2. Deklarējiet mainīgos

Modulī sāciet ar mainīgo deklarēšanu, lai saglabātu dažas lietotāja definētas vērtības, kuras izmantosit skriptā. Jūs varat izmantot Aptumšot paziņojums, lai deklarētu mainīgos, šādi:

Aptumšot PSheet  Darba lapa, DSheet  Darba lapa
Dim PvtCache PivotCache
Dim PvtTable Rakurstabula
Dim PvtRange Diapazons
Dim Last_Row Long, Last_Col Gari
Dim sht1 Variants

Šie mainīgie tiks izmantoti tālāk norādītajiem mērķiem.

  • PSheet: Galamērķa lapa, kurā VBA izveidos rakursu.
  • DSheet: Datu lapa.
  • PvtCache: Rakursa kešatmiņa satur pagrieziena punktu.
  • Pvt tabula: Rakurstabulas objekts.
  • PvtRange: Rakursa datu diapazons.
  • Last_Row un Last_Col: Pēdējā aizpildītā rinda un kolonna datu lapā (DSheet).
  • Sht1: Šis mainīgais ir variants.

3. Izslēdziet brīdinājumus un ziņojumus

Nevajadzīgas kļūdas, brīdinājumi un ziņojumi palēnina jūsu VBA kodu darbību. Izslēdzot šādus ziņojumus, jūs varat ievērojami paātrināt procesu.

Izmantojiet šādu kodu:

Ieslēgts Kļūda Atsākt Nākamo

Ar Pieteikums
.DisplayAlerts = Nepatiesi
.ScreenUpdating = Nepatiesi
BeigasAr

Kur:

  • Kļūdas gadījumā atsākt nākamo: Šī klauzula novērš visas izpildlaika kļūdas.
  • Pielietojums: Lietojumprogramma attiecas uz MS Excel.
  • Display Alerts: Rekvizīts DisplayAlerts nosaka, vai rādīt brīdinājumus.
  • Ekrāna atjaunināšana: Šis rekvizīts nosaka, vai izmaiņas ir jāatjaunina reāllaikā vai tikai tad, kad kods ir beidzis darboties.

Kad šis kods tiek palaists, tas aptur visus brīdinājumus, brīdinājumus un ziņojumus, ko Excel rādītu citādi. Varat izslēgt DisplayAlerts un ScreenUpdating parametrus, iestatot to vērtības uz Nepatiesi.

Tuvojoties koda beigām, varat tos atkal ieslēgt, iestatot vērtību kā Taisnība.

4. Dzēsiet visas esošās rakurlapas

Lai izveidotu jaunu rakurstabulu, jums ir divas iespējas. Pirmkārt, izdzēsiet esošo rakurlapu un izmantojiet VBA, lai izveidotu jaunu loksni, lai saglabātu rakursu. Varat arī izmantot esošu darblapu, lai turētu rakursu.

Šajā rokasgrāmatā izveidosim jaunu rakurstabulu, lai saglabātu rakurstabulu.

The katram cilpa apgriež katru darbgrāmatas lapu un saglabā lapas nosaukumu sht1 mainīgs. Lai saglabātu lapas nosaukumu, varat izmantot jebkuru mainīgā nosaukumu (sht1). Cilpa ciklos cauri katrai pašreizējās darbgrāmatas lapai, meklējot vienu ar konkrētu nosaukumu (Rakurs).

Kad lapas nosaukums sakrīt, lapa tiek dzēsta un pāriet uz nākamo lapu. Kad kods pārbauda visas lapas, tas iziet no cilpas un pāriet uz nākamo koda daļu, kurā tiek pievienota jauna lapa, Rakurs.

Lūk, kā to izdarīt:

PriekšKatrssht1InActiveWorkbook.Darba lapas
Ja sht1.Nosaukums = "Rakurs" Tad
sht1.Dzēst
BeigasJa
Nākamais sht1

Darba lapas. Pievienot. Vārds = "Rakurs"

5. Definējiet datu avotu un rakurlapas

Ir svarīgi izveidot mainīgos, lai saglabātu Pivot un datu lapu atsauces. Tie darbojas kā saīsnes, uz kurām varat atsaukties visā pārējā koda daļā.

Iestatīt PSheet = Worksheets("Rakurs")
Iestatīt DSheet = darblapas("Dati")

6. Identificējiet pēdējo izmantoto rindu un kolonnu

Šī koda daļa darbojas dinamiski, jo tā palielina pēdējo datu aizpildīto rindu un kolonnu.

Last_Row = DSheet. Šūnas (Rindas. Skaits, 1).Beigas (xlUp).Rinda
Last_Col = DSheet. Šūnas (1, kolonnas. Skaits).Beigas (xlToLeft).Kolonna
Iestatīt PvtRange = DSheet. Šūnas (1, 1).Mainīt izmēru (pēdējā_rinda, pēdējā_kola)

Kur:

  • Last_Row: Mainīgais, lai saglabātu pēdējo aizpildīto rindas numuru, t.i., 9995
  • Last_Col: Mainīgais, lai saglabātu pēdējo aizpildīto kolonnas numuru, t.i., 21
  • PvtRange: PvtRange atsaucas uz visu rakursa datu diapazonu

7. Izveidojiet rakurstabulu un rakurstabulu

Rakursa kešatmiņa satur rakurstabulu; tāpēc pirms rakurstabulas izveides ir jāizveido kešatmiņa. Jums ir jāizmanto VBA sintakses atsauces, lai rakurlapā izveidotu rakursa kešatmiņu.

Atsaucoties uz rakurstabulu, jums ir jāizveido rakurstabula. Kā rakurstabulas daļu varat definēt loksni, šūnas atsauci un rakurstabulas nosaukumu.

Iestatiet PvtCache = ActiveWorkbook. PivotCaches. Izveidot (SourceType:=xlDatabase, SourceData:=PvtRange).CreatePivotTable (TableDestination:=PSheet. Šūnas (2, 2), tabulas nosaukums:="MUODemoTable")
Iestatiet PvtTable = PvtCache. CreatePivotTable (TableDestination:=PSheet. Šūnas (1, 1), tabulas nosaukums:="MUODemoTable")

Kur:

  • ActiveWorkbook: Pašreizējā darbgrāmata, kurā ir datu un rakurstacijas lapa.
  • PivotCaches. Izveidot: Noklusējuma sintakse, lai izveidotu pagrieziena kešatmiņu.
  • Avota veids: Tā kā jums ir dati darbgrāmatā, varat tos definēt kā xlDatu bāze. Dažas citas iespējas ietver xlKonsolidācija, xl Ārējais, vai xlPivotTable.
  • Avota dati: Kā avota datus varat atsaukties uz iepriekšējo pagrieziena diapazonu.
  • Izveidot PivotTable: Noklusējuma komanda, lai izveidotu rakurstabulu.
  • Galda galamērķis: Ir jānorāda loksnes un šūnu atsauces, kur vēlaties izveidot rakursu.
  • Tabulas nosaukums: Norādiet rakurstabulas nosaukumu.
  • Izveidot PivotTable: Noklusējuma komanda, lai izveidotu rakurstabulu rakurstabulas kešatmiņā.

8. Ievietojiet rindas, kolonnas, filtrus un vērtības

Tā kā rakurstabula ir gatava, jums jāsāk pievienot parametri filtriem, rindām, kolonnām un apkopojuma vērtībām. Varat izmantot VBA pagrieziena lauki komandu, lai sāktu detaļu deklarēšanu.

Lai pievienotu filtra vērtības:

Ar ActiveSheet. Rakurstabulas("MUODemoTable").PivotFields("Novads")
.Orientācija = xlPageField
BeigasAr

Lai pievienotu rindu vērtības:

Ar ActiveSheet. Rakurstabulas("MUODemoTable").PivotFields("Apakškategorija")
.Orientācija = xlRowField
BeigasAr

Lai pievienotu kolonnu vērtības:

Ar ActiveSheet. Rakurstabulas("MUODemoTable").PivotFields("Valsts")
.Orientācija = xlColumnField
BeigasAr

Lai pievienotu apkopošanas vērtības:

Ar ActiveSheet. Rakurstabulas("MUODemoTable").PivotFields("Pārdošana")
.Orientācija = xlDataField
.Funkcija = xlSum
BeigasAr

Ir svarīgi ņemt vērā, ka jums ir jāatsaucas uz aktīvo lapu (rakurlapu), kam seko rakurstabulas nosaukums un mainīgā nosaukums. Ja jums ir jāpievieno filtrs(-i), rinda(-s) un kolonna(-s), varat pārslēgties starp dažādām sintaksēm, kas ietver tālāk norādīto.

  • xlPageField: Lai pievienotu filtrus.
  • xlRowField: Lai pievienotu rindas.
  • xlRowField: Lai pievienotu kolonnas.

Visbeidzot, jūs varat izmantot xlDataField komandu, lai aprēķinātu vērtību apkopojumus. Varat izmantot citas apkopošanas funkcijas, piemēram, xlSum, xlAverage, xlCount, xlMax, xlMin un xlProduct.

9. Excel VBA koda palaišana, lai izveidotu automātiskus rakursus

Visbeidzot, kad visa programma ir gatava, varat to palaist, nospiežot F5 vai noklikšķinot uz spēlēt pogu. Kad savā darbgrāmatā atgriezīsities pie rakurstabulas, redzēsit, ka jauna rakurstabula ir gatava pārskatīšanai.

Ja vēlaties redzēt soli pa solim, kā koda komanda tiek atskaņota rindu pa rindiņai, varat pāriet uz koda redaktoru un nospiest F8 vairākas reizes. Tādā veidā jūs varat redzēt, kā darbojas katra koda rindiņa un kā VBA automātiski izveido jūsu rakursus.

Mācīšanās kodēt rakurstabulas automātiski

Rakursi nav ierobežoti tikai ar MS Excel. Programmēšanas valodas, piemēram, Python, ļauj izveidot optimizētus rakursus, izmantojot tikai dažas koda rindiņas.

Datu optimizācija nevar būt vienkāršāka par šo. Varat efektīvi izvēlēties un izvēlēties savas komandas programmā Python un viegli izveidot līdzīgu Excel līdzīgu rakursa struktūru.