Jaa jokainen Excel-arkki erillisiksi tiedostoiksi (vaihe vaiheelta)

Katso video - Kuinka jakaa jokainen Excel -arkki erillisiksi tiedostoiksi

Jos sinulla on Excel -työkirja, jossa on monia laskentataulukoita, ei ole helppoa tapaa jakaa näitä arkkeja erillisiin Excel -tiedostoihin ja tallentaa ne erikseen.

Tämä voi olla tarpeen, kun arkistoit eri kuukausia tai alueita tai tuotteita/asiakkaita ja haluat nopeasti saada erillisen työkirjan jokaiselle arkille (Excel -tiedostona tai PDF -tiedostona).

Vaikka on olemassa manuaalinen tapa jakaa arkit erillisiksi työkirjoiksi ja tallentaa ne sitten, se on tehotonta ja altis virheille.

Tässä opetusohjelmassa annan sinulle yksinkertaisen VBA -koodin, jonka avulla voit nopeasti (muutamassa sekunnissa) jakaa kaikki laskentataulukot omiksi erillisiksi tiedostoiksi ja tallentaa ne sitten mihin tahansa määritettyyn kansioon.

Jaa jokainen laskentataulukko erilliseksi Excel -tiedostoksi

Oletetaan, että sinulla on alla oleva työkirja, jossa sinulla on laskentataulukko joka kuukausi.

Voit jakaa nämä taulukot erilliseen Excel -tiedostoon käyttämällä alla olevaa VBA -koodia:

'Koodi Luo Sumit Bansal, trumpexcel.com Sub SplitEachWorksheet () Dim FPath As String Tiedostonimi: = FPath & "\" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = Todellinen loppuosa

Ennen kuin käytät yllä olevaa VBA -koodia, sinun on varmistettava muutama asia:

  1. Luo kansio, johon haluat saada kaikki tuloksena olevat tiedostot.
  2. Tallenna Excel -päätiedosto (joka sisältää kaikki haluamasi laskentataulukot erillisinä tiedostoina) tähän kansioon.

Kun olet tehnyt tämän, voit laittaa yllä olevan VBA -koodin tiedostoon ja suorittaa koodin.

Yllä oleva koodi on kirjoitettu siten, että se hakee kansion sijainnin tiedoston polkua käyttäen (jossa koodi suoritetaan). Siksi on tärkeää tallentaa tiedosto ensin kansioon ja käyttää sitten tätä koodia.

Kuinka VBA -koodi toimii - Yllä oleva koodi käyttää yksinkertaista For Next -silmukkaa, joka kulkee jokaisen laskentataulukon läpi, luo kopion laskentataulukosta Excel -työkirjaan ja tallentaa tämän Excel -työkirjan määritettyyn kansioon (joka on sama, jossa on päätiedosto ja kaikki arkkia).

Alla on ohjeet tämän VBA -koodin sijoittamiseen Excel -työkirjaan (nämä ovat samat kaikille muille tässä opetusohjelmassa esitetyille menetelmille):

Minne tämä koodi laitetaan?

Alla on ohjeet koodin sijoittamiseen Visual Basic Editoriin, jossa se voidaan suorittaa:

  • Napsauta Kehittäjä -välilehteä.
  • Napsauta Koodi -ryhmässä Visual Basic -vaihtoehtoa. Tämä avaa VB -editorin. [Voit käyttää myös pikanäppäintä - ALT + F11]
  • Napsauta VB Editorissa hiiren kakkospainikkeella mitä tahansa työkirjan kohdetta, jota käsittelet.
  • Vie hiiri Lisää -vaihtoehdon päälle
  • Napsauta Moduuli. Tämä lisää uuden moduulin
  • Kaksoisnapsauta Module-objektia. tämä avaa moduulin koodi -ikkunan
  • Kopioi yllä oleva VBA -koodi ja liitä se moduulin koodi -ikkunaan.
  • Valitse mikä tahansa rivi koodissa ja suorita VBA -makrokoodi napsauttamalla työkalupalkin vihreää toistopainiketta.

Yllä olevat vaiheet jakavat laskentataulukot välittömästi erillisiin Excel -tiedostoihin ja tallentavat ne. Se kestää vain sekunnin, jos laskentataulukoita on vähemmän. Jos sinulla on paljon, se voi kestää jonkin aikaa.

Jokaisen tallennetun tiedoston nimi on sama kuin sen arkistotiedoston nimi, joka sillä oli päätiedostossa.

Koska olet lisännyt VBA-koodin Excel-työkirjaan, sinun on tallennettava tämä .XLSM-muodossa (joka on makrokäyttöinen muoto). Tämä varmistaa, että makro tallennetaan ja toimii, kun avaat tämän tiedoston seuraavaksi.

Huomaa, että olen käyttänyt viivoja Application.ScreenUpdating = Väärä ja Application.DisplayAlerts = Väärä koodissa niin, että kaikki tapahtuu taustalla eikä näy asioita tapahtuvan näytölläsi. Kun koodi on suoritettu ja jakaa arkit ja tallentaa ne, muutamme ne takaisin TOSI.

Parhaana käytännönä on suositeltavaa luoda varmuuskopio päätiedostosta (joka sisältää arkit, jotka haluat jakaa). Tämä varmistaa, ettet menetä tietojasi, jos jokin menee pieleen tai jos Excel päättää hidastua tai kaatua.

Jaa jokainen laskentataulukko ja tallenna erillisinä PDF -tiedostoina

Jos haluat jakaa laskentataulukot ja tallentaa ne PDF -tiedostoina Excel -tiedostojen sijaan, voit käyttää alla olevaa koodia:

'Koodi Luoja Sumit Bansal, trumpexcel.com Sub SplitEachWorksheet () Dim FPath As String FPath = Application.ActiveWorkbook.Path Application.ScreenUpdating = False Application.DisplayAlerts = False For each ws In ThisWorkbook.Sheets ws.Copy Application.ActiveSatF.Export Tyyppi: = xlTypePDF, Tiedostonimi: = FPath & "\" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

Asiat, jotka sinun on varmistettava ennen tämän koodin käyttöä:

  1. Luo kansio, johon haluat saada kaikki tuloksena olevat tiedostot.
  2. Tallenna Excel -päätiedosto (joka sisältää kaikki haluamasi laskentataulukot erillisinä tiedostoina) tähän kansioon.

Yllä oleva koodi jakaa jokaisen Excel -tiedoston taulukon ja tallentaa sen PDF -tiedostona samaan kansioon, johon olet tallentanut Excel -päätiedoston.

Jaa vain ne laskentataulukot, joissa on sana/lause, erillisiin Excel -tiedostoihin

Jos työkirjassa on paljon arkkeja ja haluat jakaa vain ne taulukot, joissa on tietty teksti, voit tehdä sen myös.

Oletetaan esimerkiksi, että sinulla on Excel -tiedosto, jossa olet useiden vuosien tietoja ja jokaisen tiedoston taulukon etuliitteenä on vuosinumero. Jotain alla olevan kuvan mukaisesti:

Oletetaan nyt, että haluat jakaa kaikki taulukot kaudelle 2021-2022 ja tallentaa ne erillisinä Excel-tiedostoina. Tätä varten sinun on jotenkin tarkistettava jokaisen laskentataulukon nimi ja vain ne taulukot, joilla on numero 2021-2022, jaettava ja tallennettava, ja loput jätetään koskemattomiksi.

Tämä voidaan tehdä käyttämällä seuraavaa VBA -makrokoodia:

'Koodi Luo Sumit Bansal, trumpexcel.com Sub SplitEachWorksheet () Dim FPath merkkijonona Dim TexttoFind As String TexttoFind = "2020" FPath = Application.ActiveWorkbook.Path Application.ScreenUpdating = False Application.DisplayAlerts = False Jokaiselle tämän työkirjaan. Sheets If InStr (1, ws.Name, TexttoFind, vbBinaryCompare) 0 Sitten ws.Copy Application.ActiveWorkbook.SaveAs Tiedostonimi: = FPath & "\" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close Väärä loppu, jos seuraava Application.DisplayAlerts = True Application.ScreenUpdating = Todellinen loppuosa

Yllä olevassa koodissa olen käyttänyt muuttujaa TexttoFind, joka on alun perin annettu "2020".

VBA -koodi käyttää sitten VBA: n For Next -silmukkaa kunkin laskentataulukon läpi ja tarkistaa sitten kunkin laskentataulukon INSTR -toiminnon nimen. Tämä toiminto tarkistaa, onko laskentataulukon nimessä sana 2021-2022 vai ei. Jos näin on, se palauttaa sijaintinumeron, josta se löytää tämän tekstin (joka on tässä tapauksessa 2021-2022).

Ja jos se ei löydä etsimäämme tekstiä, se palauttaa 0.

Tätä käytetään IF Sitten -olosuhteessa. Joten jos arkin nimessä on teksti merkkijono2021-2022, se jaetaan ja tallennetaan erillisenä tiedostona. Ja jos sillä ei ole tätä tekstimerkkijonoa, IF -ehto ei täyty ja mitään ei tapahdu.

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave