Ponekad želimo spojiti više listova u jedan list kako bismo mogli lako analizirati podatke i pretvoriti ih u neke korisne informacije. Ovi će vam članci reći kako spojiti više radnih listova u jedan radni list pomoću VBA.
Primjer:
Ovdje sam dohvatio neke podatke s poslužitelja koji vraća podatke u različite radne listove. Dodao sam još jedan list i nazvao ga “Master”. Drugi nazivi listova nisu bitni.
Sada pokrenite ovu makronaredbu.
Sub Merge_Sheets () Dim startRow, startCol, lastRow, lastCol As Long Dim headers As Range 'Set Master sheet for consolidation Set mtr = Worksheets ("Master") Set wb = ThisWorkbook' Get Headers Set headers = Application.InputBox ("Odaberite Headers ", Type: = 8) 'Copy Headers into master headers.Copy mtr.Range (" A1 ") startRow = headers.Row + 1 startCol = headers.Column Debug.Print startRow, startCol' petlja kroz sve listove Za svaki ws U wb.Worksheets 'osim glavnog lista iz petlje Ako ws.Name "Master" Zatim ws.Activate lastRow = Cells (Rows.Count, startCol) .End (xlUp) .Row lastCol = Cells (startRow, Columns.Count). End (xlToLeft). Column 'get data from each worksheet and copy it into Master sheet Range (Cells (startRow, startCol), Cells (lastRow, lastCol)). Copy _ mtr.Range ("A" & mtr.Cells (Rows .Count, 1) .End (xlUp) .Row + 1) End If Next ws Worksheets ("Master"). Activate End Sub
Kako spojiti listove pomoću ove VBA makronaredbe?
- Umetnite novi list i dajte mu naziv "Master" u radnoj knjizi. Preimenujte ga kasnije ako želite.
- Umetnite modul u VBA editor i kopirajte iznad VBA koda.
- Pokrenite makro.
- Od vas će se tražiti da odaberete naslove. Odaberite naslov i pritisnite OK.
I to je učinjeno. Svi listovi su spojeni u master.
Kako radi?
Pretpostavljam da poznajete osnove stvaranja objekata i varijabli u VBA -i. u prvom smo dijelu stvorili objekt i varijable koje će nam trebati u našim operacijama.
Pa većinu stvari koje sam objasnio pomoću komentara u vba kodu. Pogledajmo glavni dio ovog vba koda.
Za svaki ws U wb.Worksheets 'osim glavnog lista iz petlje Ako ws.Name "Master" Zatim ws.Activate lastRow = Cells (Rows.Count, startCol) .End (xlUp) .Row lastCol = Cells (startRow, Columns. Count) .End (xlToLeft) .Column 'get data from each worksheet and copy it into Master sheet Range (Cells (startRow, startCol), Cells (lastRow, lastCol)). Copy _ mtr.Range ("A" & mtr. Ćelije (redovi.broj, 1). Kraj (xlUp). Redak + 1) kraj ako je sljedeće ws
U ranijim člancima naučili smo kako prolaziti kroz listove i kako doći do zadnjeg retka i stupca pomoću vba.
Ovdje prolazimo kroz svaki list u glavnoj radnoj knjizi pomoću for petlje.
Za svaki ws U wb.Radni listovi
Zatim isključujemo "glavni" list iz petlje, jer ćemo konsolidirati naše podatke u tom listu.
Zatim dobivamo posljednji red i posljednji broj stupca.
Sada je sljedeći redak vrlo važan. Uradili smo više operacija u jednoj liniji.
Raspon (ćelije (startRow, startCol), ćelije (lastRow, lastCol)). Kopiraj _
mtr.Range ("A" & mtr.Cells (Rows.Count, 1) .End (xlUp) .Row + 1)
Prvo formiramo raspon pomoću startRow, startCol i lastRow i lastCol.
Raspon (ćelije (startRow, startCol), ćelije (lastRow, lastCol)) Kopirali smo ga metodom kopiranja raspona. Raspon (ćelije (startRow, startCol), ćelije (lastRow, lastCol)). Kopiraj Zalijepili smo ga izravno u prvu praznu ćeliju nakon posljednje ćelije koja nije prazna u stupcu A glavnog lista (mtr.Cells (Rows.Count, 1) .End (xlUp) .Red + 1). Raspon (ćelije (startRow, startCol), ćelije (lastRow, lastCol)). Kopiraj _ mtr.Range ("A" & mtr.Cells (Rows.Count, 1) .End (xlUp) .Row + 1)
Ova petlja radi za sve listove i kopira podatke svakog lista u glavni list.
Konačno, na kraju makronaredbe aktiviramo glavnu tablicu kako bismo vidjeli izlaz.
Pa da, dečki, ovako možete spojiti svaki list u radnoj knjizi. Javite mi ako imate bilo kakvih pitanja u vezi ovog VBA koda ili bilo koje excel teme u odjeljku komentara u nastavku.
Preuzmi datoteku:
Povezani članci:
Kako prelistati listove
kako doći do zadnjeg retka i stupca pomoću vba
Brisanje listova bez upita za potvrdu pomoću VBA u programu Microsoft Excel
Dodajte i spremite novu radnu knjigu pomoću VBA -a u programu Microsoft Excel 2016
Prikažite poruku na statusnoj traci programa Excel VBA
Isključite poruke upozorenja pomoću VBA u programu Microsoft Excel 2016
Popularni članci:
Funkcija VLOOKUP u Excelu
COUNTIF u Excelu 2016
Kako koristiti funkciju SUMIF u Excelu