Yhdistä/yhdistä useita laskentataulukoita yhdeksi pääarkiksi VBA: n avulla

Anonim

Joskus haluamme yhdistää useita arkkeja yhdeksi arkiksi, jotta voimme analysoida tiedot helposti ja muuttaa niistä hyödyllisiä tietoja. Tässä artikkelissa kerrotaan, kuinka voit yhdistää useita laskentataulukoita yhdeksi laskentataulukkoksi VBA: n avulla.
Esimerkki:

Täältä olen hakenut tietoja palvelimelta, joka palauttaa tiedot eri laskentataulukoille. Olen lisännyt yhden arkin lisää ja nimesin sen "päälliköksi". Muilla lehtien nimillä ei ole väliä.
Suorita nyt tämä makro.

Sub Merge_Sheets () Dim Dim StartRow, startCol, lastRow, lastCol As Long Dim headers As Range 'Aseta pääarkki konsolidointia varten Set mtr = Worksheets ("Master") Set wb = ThisWorkbook' Get Headers Set headers = Application.InputBox ("Valitse Otsikot ", tyyppi: = 8) 'Kopioi otsikot pääotsikoiksi.Kopioi mtr.Range (" A1 ") startRow = headers.Row + 1 startCol = headers.Column Debug.Print startRow, startCol' -silmukka kaikkien arkkien läpi jokaiselle ws In wb.Worksheets 'lukuun ottamatta master -arkkia silmukoinnista If ws.Name "Master" Sitten ws.Activate lastRow = Solut (Rows.Count, startCol) .End (xlUp) .Row lastCol = Solut (startRow, Columns.Count). End (xlToLeft) .Column 'hakee tietoja jokaisesta laskentataulukosta ja kopioi ne Master -taulukon alueelle (Solut (startRow, startCol), Solut (lastRow, lastCol)). Kopioi _ mtr.Range ("A" & mtr.Cells (Rows .Count, 1) .End (xlUp) .Row + 1) End If Next ws Worksheets ("Master"). Aktivoi End Sub 

Kuinka yhdistää arkit tämän VBA -makron avulla?

  1. Lisää uusi arkki ja anna sille nimi ”Master” työkirjassa. Nimeä se myöhemmin uudelleen, jos haluat.
  2. Aseta moduuli VBA -editoriin ja kopioi yllä oleva VBA -koodi.
  3. Suorita makro.
  4. Sinua pyydetään valitsemaan otsikot. Valitse otsikko ja paina OK.

Ja se on tehty. Kaikki taulukot yhdistetään masteriksi.

Kuinka se toimii?
Oletan, että tiedät objektien ja muuttujien luomisen perusteet VBA: ssa. ensimmäisessä osassa olemme luoneet objekteja ja muuttujia, joita tarvitsemme toiminnassamme.

Suurin osa asioista, jotka olen selittänyt käyttämällä vba -koodin kommentteja. Katsotaanpa tämän vba -koodin pääosa.

Jokaiselle ws: lle wb.Worksheets 'lukuun ottamatta silmukoinnin pääarkkia If ws.Name "Master" Sitten ws.Activate lastRow = Solut (Rows.Count, startCol) .End (xlUp) .Row lastCol = Solut (startRow, Columns). Count) .End (xlToLeft) .Column 'hakee tietoja jokaisesta laskentataulukosta ja kopioi ne Master sheet Range (Solut (startRow, startCol), Solut (lastRow, lastCol)). Kopioi _ mtr.Range ("A" & mtr. Solut (Rivien lukumäärä, 1) Loppu (xlUp). Rivi + 1) Lopeta, jos seuraava ws

Aikaisemmissa artikkeleissa opimme silmukoiden selaamisen ja viimeisen rivin ja sarakkeen saamisen vba: n avulla.

Täällä käymme läpi jokaisen arkin päätyökirjassa käyttämällä silmukkaa.
Jokaiselle ws In wb.Worksheets

Sitten suljemme ”pää” -arkin pois silmukoinnista, koska yhdistämme tietomme kyseiselle taulukolle.

Sitten saamme viimeisen rivin ja viimeisen sarakkeen numeron.

Nyt seuraava rivi on erittäin tärkeä. Olemme tehneet useita toimintoja yhdelle riville.
Alue (Solut (startRow, startCol), Solut (lastRow, lastCol)). Kopioi _
mtr.Range ("A" & mtr.Cells (Rows.Count, 1) .End (xlUp) .Row + 1)

Ensin muodostamme alueen käyttämällä startRow, startCol ja lastRow ja lastCol.

Alue (Solut (startRow, startCol), Solut (lastRow, lastCol)) Olemme kopioineet sen käyttämällä alueen kopiointimenetelmää. Alue (Solut (startRow, startCol), Solut (lastRow, lastCol)). (xlUp). rivi + 1). Alue (Solut (startRow, startCol), Solut (lastRow, lastCol)). Kopioi _ mtr.Range ("A" & mtr.Cells (Rows.Count, 1). End (xlUp). Rivi + 1)

Tämä silmukka suoritetaan kaikille arkeille ja kopioi jokaisen taulukon tiedot pääarkiksi.

Lopuksi, makron lopussa aktivoimme master -taulukon nähdäksesi tuloksen.

Joten kyllä ​​kaverit, näin voit yhdistää työkirjan jokaisen arkin. Kerro minulle, jos sinulla on kysyttävää tästä VBA -koodista tai muista Excel -aiheista alla olevissa kommenttien osassa.
Lataa tiedosto:

Yhdistä_Merge useita laskentataulukoita yhdeksi pääarkiksi VBA: n avulla

Aiheeseen liittyvät artikkelit:

Kuinka kiertää arkkia

kuinka saada viimeinen rivi ja sarake vba: n avulla

Poista taulukot ilman vahvistuskehotteita käyttämällä VBA: ta Microsoft Excelissä

Lisää ja tallenna uusi työkirja VBA: n avulla Microsoft Excel 2016: ssa

Näytä viesti Excel VBA -tilapalkissa

Poista varoitusviestit käytöstä VBA: n avulla Microsoft Excel 2016: ssa

Suosittuja artikkeleita:

VLOOKUP -toiminto Excelissä

COUNTIF Excel 2016: ssa

SUMIF -toiminnon käyttäminen Excelissä