Včasih želimo združiti več listov v en list, da lahko podatke enostavno analiziramo in jih spremenimo v nekaj uporabnih informacij. Ta članek vam bo povedal, kako združiti več delovnih listov v en delovni list z uporabo VBA.
Primer:
Tu sem s strežnika prinesel nekaj podatkov, ki podatke vračajo v različne delovne liste. Dodal sem še en list in ga poimenoval »mojster«. Druga imena listov niso pomembna.
Zdaj zaženite ta makro.
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 ("Izberite polje Headers ", Type: = 8) 'Kopirajte glave v glavne glave. Kopirajte mtr.Range (" A1 ") startRow = headers.Row + 1 startCol = headers. Stolpec Debug.Print startRow, startCol' zanko skozi vse liste Za vsako ws V wb.Worksheets 'razen glavnega lista iz zanke If ws.Name "Master" Potem ws.Activate lastRow = Cells (Rows.Count, startCol) .End (xlUp) .Row lastCol = Cells (startRow, Columns.Count). Konec "(xlToLeft). Stolpec" pridobi podatke iz vsakega delovnega lista in jih kopira v obseg glavnega lista (celice (startRow, startCol), celice (lastRow, lastCol)). Kopiraj _ mtr.Range ("A" & mtr. celice (vrstice .Count, 1) .End (xlUp) .Row + 1) End If Next ws Worksheets ("Master"). Activate End Sub
Kako združiti liste z uporabo tega makra VBA?
- Vstavite nov list in ga poimenujte "Master" v delovni zvezek. Če želite, ga preimenujte pozneje.
- Vstavite modul v urejevalnik VBA in kopirajte nad kodo VBA.
- Zaženite makro.
- Od vas se bo zahtevalo, da izberete naslove. Izberite naslov in pritisnite V redu.
In to je storjeno. Vsi listi so združeni v master.
Kako deluje?
Predvidevam, da poznate osnove ustvarjanja objektov in spremenljivk v VBA. v prvem delu smo ustvarili predmet in spremenljivke, ki jih bomo potrebovali pri svojem delovanju.
No, večino stvari, ki sem jih razložil s komentarji v kodi vba. Poglejmo glavni del te kode vba.
Za vsak ws V wb.Worksheets 'razen glavnega lista iz zanke Če ws.Name "Master" Potem ws.Activate lastRow = Cells (Rows.Count, startCol) .End (xlUp) .Row lastCol = Cells (startRow, stolpci. Count) .End (xlToLeft) .Column 'dobite podatke iz vsakega delovnega lista in jih kopirajte v obseg Master List (celice (startRow, startCol), celice (lastRow, lastCol)). Kopirajte _ mtr.Range ("A" & mtr. Celice (vrstice. Število, 1). Konec (xlUp). Vrstica + 1) konec, če je naslednji ws
V prejšnjih člankih smo se naučili, kako prelistati liste in kako priti do zadnje vrstice in stolpca z uporabo vba.
Tu prehajamo skozi vsak list v glavnem delovnem zvezku z uporabo zanke for.
Za vsak ws V wb.Worksheets
Nato izključimo "glavni" list iz zanke, saj bomo na tem listu konsolidirali naše podatke.
Nato dobimo številko zadnje vrstice in zadnjega stolpca.
Zdaj je naslednja vrstica zelo pomembna. Opravili smo več operacij v eni vrstici.
Obseg (celice (startRow, startCol), celice (lastRow, lastCol)). Kopiraj _
mtr.Range ("A" & mtr.Cells (Rows.Count, 1) .End (xlUp) .Row + 1)
Najprej oblikujemo obseg z uporabo startRow, startCol in lastRow ter lastCol.
Obseg (celice (startRow, startCol), celice (lastRow, lastCol)) Kopirali smo ga z uporabo metode kopiranja obsega. Obseg (celice (startRow, startCol), celice (lastRow, lastCol)). Kopiraj Prilepili smo ga neposredno v prvo prazno celico za zadnjo neprazno celico v stolpcu A glavnega lista (mtr.Cells (Rows.Count, 1). End (xlUp) .Row + 1). Obseg (celice (startRow, startCol), celice (lastRow, lastCol)). Kopiraj _ mtr.Range ("A" & mtr.Cells (Rows.Count, 1) .End (xlUp) .Row + 1)
Ta zanka se izvaja za vse liste in podatke vsakega lista kopira v glavni list.
Na koncu na koncu makra aktiviramo glavni list za ogled izpisa.
Torej, fantje, tako lahko združite vsak list v delovnem zvezku. Sporočite mi, če imate kakršno koli vprašanje v zvezi s to kodo VBA ali katero koli temo Excel v spodnjem razdelku za komentarje.
Prenesite datoteko:
Povezani članki:
Kako prelistati liste
kako priti do zadnje vrstice in stolpca z uporabo vba
Brisanje listov brez potrditvenih pozivov z uporabo VBA v programu Microsoft Excel
Dodajte in shranite nov delovni zvezek z uporabo VBA v programu Microsoft Excel 2016
Prikaz sporočila v vrstici stanja Excel VBA
Izklopite opozorilna sporočila z uporabo VBA v programu Microsoft Excel 2016
Priljubljeni članki:
Funkcija VLOOKUP v Excelu
COUNTIF v Excelu 2016
Kako uporabljati funkcijo SUMIF v Excelu