Työkirjaobjektin käyttäminen Excel VBA: ssa (Avaa, Sulje, Tallenna, Aseta)

Tässä opetusohjelmassa käsittelen, miten voit työskennellä Excel -työkirjojen kanssa VBA: n avulla.

Excelissä työkirja on objekti, joka on osa työkirjakokoelmaa. Työkirjassa on erilaisia ​​objekteja, kuten laskentataulukoita, kaavioarkkeja, soluja ja alueita, kaavio -objekteja, muotoja jne.

VBA: n avulla voit tehdä paljon asioita työkirjaobjektilla - esimerkiksi avata tietyn työkirjan, tallentaa ja sulkea työkirjat, luoda uusia työkirjoja, muuttaa työkirjan ominaisuuksia jne.

Aloitetaan siis.

Kaikki tässä opetusohjelmassa mainitsemani koodit on sijoitettava Visual Basic Editoriin. Siirry VBA -koodin sijoitusosaan saadaksesi tietää, miten se toimii.

Jos olet kiinnostunut VBA: n oppimisesta helpolla tavalla, tutustu minun Online Excel VBA -koulutus.

Työkirjan viittaaminen VBA: n avulla

Työkirjaobjektiin voi viitata eri tavoilla VBA: ssa. Valitsemasi menetelmä riippuu siitä, mitä haluat tehdä. Tässä osassa käsittelen erilaisia ​​tapoja viitata työkirjaan sekä joitain esimerkkikoodeja.

Työkirjanimien käyttäminen

Jos sinulla on tarkka työkirjan nimi, johon haluat viitata, voit käyttää koodissa olevaa nimeä.

Aloitetaan yksinkertaisella esimerkillä.

Jos sinulla on kaksi työkirjaa auki ja haluat aktivoida työkirjan nimellä - Examples.xlsx, voit käyttää alla olevaa koodia:

Aktivoi työkirja () Työkirjat ("Examples.xlsx"). Aktivoi End Sub

Huomaa, että sinun on käytettävä tiedostonimeä laajennuksen kanssa, jos tiedosto on tallennettu. Jos sitä ei ole tallennettu, voit käyttää nimeä ilman tiedostopääte.

Jos et ole varma, mitä nimeä käytät, pyydä apua Project Explorerilta.

Jos haluat aktivoida työkirjan ja valita tietyn solun työkirjan laskentataulukosta, sinun on annettava koko solun osoite (mukaan lukien työkirja ja laskentataulukon nimi).

Ala Aktivoi työkirja () Työkirjat ("Esimerkit.xlsx"). Laskentataulukot ("Taulukko1"). Aktivoi alue ("A1"). Valitse Lopeta ala

Yllä oleva koodi aktivoi ensin taulukon 1 Esimerkit.xlsx -työkirjassa ja valitsee sitten taulukon solun A1.

Näet usein koodin, jossa viitataan laskentataulukkoon tai soluun/alueeseen viittaamatta työkirjaan. Näin tapahtuu, kun viittaat saman työkirjan laskentataulukkoon/-alueisiin, joissa on koodi ja joka on myös aktiivinen työkirja. Joissakin tapauksissa sinun on kuitenkin määritettävä työkirja, jotta koodi toimii (lisätietoja tästä ThisWorkbook -osiosta).

Indeksinumeroiden käyttäminen

Voit myös viitata työkirjoihin niiden indeksinumeron perusteella.

Jos sinulla on esimerkiksi kolme työkirjaa auki, seuraava koodi näyttää viestikentässä olevien kolmen työkirjan nimet (yksi kerrallaan).

AlityökirjaNimi () MsgBox -työkirjat (1). Nimi MsgBox -työkirjat (2). Nimi MsgBox -työkirjat (3). Nimi Loppuosa

Yllä oleva koodi käyttää MsgBoxia - toimintoa, joka näyttää viestiruudun, jossa on määritetty teksti/arvo (joka on tässä tapauksessa työkirjan nimi).

Yksi ongelmista, joita minulla usein on hakemistonumeroiden käyttämisessä työkirjojen kanssa, on se, että et koskaan tiedä, mikä on ensimmäinen työkirja ja mikä toinen ja niin edelleen. Voit olla varma, että sinun on suoritettava yllä kuvattu koodi tai jotain vastaavaa silmukkaa avoimien työkirjojen läpi ja tiedettävä niiden indeksinumero.

Excel käsittelee ensin avatun työkirjan indeksinumerona 1 ja seuraavaksi 2 ja niin edelleen.

Tästä haitoista huolimatta indeksinumeroiden käyttäminen voi olla hyödyllistä. Jos haluat esimerkiksi käydä läpi kaikki avoimet työkirjat ja tallentaa kaikki, voit käyttää hakemistonumeroita. Tässä tapauksessa, koska haluat tämän tapahtuvan kaikille työkirjoille, et ole huolissasi niiden yksittäisistä hakemistonumeroista.

Alla oleva koodi kiertää kaikki avoimet työkirjat läpi ja sulkee kaikki paitsi työkirjan, jossa on tämä VBA -koodi.

Sub CloseTyökirjat () Dim WbCount As Integer WbCount = Työkirjat. Lasketaan i = WbCount 1. vaiheeseen -1 Jos työkirjat (i) .Nimi ThisWorkbook.Name Sitten työkirjat (i).

Yllä oleva koodi laskee avointen työkirjojen määrän ja käy sitten läpi kaikki työkirjat käyttämällä jokaista silmukkaa.

Se tarkistaa IF -ehdon avulla, onko työkirjan nimi sama kuin sen työkirjan nimi, jossa koodia ajetaan.

Jos se ei vastaa, se sulkee työkirjan ja siirtyy seuraavaan.

Huomaa, että olemme suorittaneet silmukan WbCountista 1 askeleella -1. Tämä tehdään kuten jokaisen silmukan kohdalla, avointen työkirjojen määrä vähenee.

Tämä työkirja on käsitelty yksityiskohtaisesti myöhemmässä osassa.

ActiveWorkbookin käyttö

ActiveWorkbook, kuten nimestä voi päätellä, viittaa aktiiviseen työkirjaan.

Alla oleva koodi näyttää aktiivisen työkirjan nimen.

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name End Sub

Kun aktivoit toisen työkirjan VBA: n avulla, sen jälkeen VBA: n ActiveWorkbook -osa alkaa viitata aktivoituun työkirjaan.

Tässä on esimerkki tästä.

Jos sinulla on aktiivinen työkirja ja lisäät siihen seuraavan koodin ja suoritat sen, siinä näytetään ensin sen työkirjan nimi, jossa on koodi, ja sitten Examples.xlsx (jonka koodi aktivoi).

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name Työkirjat ("Examples.xlsx"). Aktivoi MsgBox ActiveWorkbook.Name End Sub

Huomaa, että kun luot uuden työkirjan VBA: n avulla, uudesta työkirjasta tulee automaattisesti aktiivinen työkirja.

Tämän työkirjan käyttäminen

Tämä työkirja viittaa työkirjaan, jossa koodia suoritetaan.

Jokaisessa työkirjassa olisi ThisWorkbook -objekti osana sitä (näkyy Project Explorerissa).

"Tämä työkirja" voi tallentaa tavallisia makroja (samanlaisia ​​kuin lisämoduulimme) ja tapahtumatoimenpiteitä. Tapahtumaprosessi laukaistaan ​​tapahtuman perusteella - esimerkiksi kaksoisnapsauttamalla solua tai tallentamalla työkirja tai aktivoimalla laskentataulukko.

Kaikki tähän "tämän työkirjaan" tallentamasi tapahtumamenettelyt ovat käytettävissä koko työkirjassa verrattuna taulukkotason tapahtumiin, jotka rajoittuvat vain tiettyihin arkkeihin.

Jos esimerkiksi kaksoisnapsautat ThisWorkbook-objektia Project Explorerissa ja kopioit ja liität alla olevan koodin siihen, se näyttää solun osoitteen aina, kun kaksoisnapsautat mitä tahansa koko työkirjan solua.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh objektina, ByVal Target as Range, Cancel as Boolean) MsgBox Target.

Vaikka tämän työkirjan tärkein tehtävä on tallentaa tapahtumamenettely, voit käyttää sitä myös viittaamaan työkirjaan, jossa koodia suoritetaan.

Alla oleva koodi palauttaa sen työkirjan nimen, jossa koodi suoritetaan.

Sub ThisWorkbookName () MsgBox ThisWorkbook.Name End Sub

ThisWorkbookin (ActiveWorkbookin) käyttämisen etu on, että se viittaisi aina samaan työkirjaan (siihen, jossa on koodi). Joten jos käytät VBA -koodia uuden työkirjan lisäämiseen, ActiveWorkbook muuttuisi, mutta ThisWorkbook viittaisi silti siihen, jolla on koodi.

Uuden työkirjaobjektin luominen

Seuraava koodi luo uuden työkirjan.

Sub CreateNewWorkbook () Työkirjat. Add End Sub

Kun lisäät uuden työkirjan, siitä tulee aktiivinen työkirja.

Seuraava koodi lisää uuden työkirjan ja näyttää sitten sen työkirjan nimen (joka olisi Book1 -oletustyypin oletusnimi).

Sub CreateNewWorkbook () Työkirjat. Lisää MsgBox ActiveWorkbook.Name End Sub

Avaa työkirja VBA: n avulla

Voit avata tietyn työkirjan VBA: n avulla, kun tiedät työkirjan tiedostopolun.

Alla oleva koodi avaa työkirjan - Examples.xlsx, joka on järjestelmäni Asiakirjat -kansiossa.

Sub OpenWorkbook () Työkirjat.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") Loppuosa

Jos tiedosto on oletuskansiossa, joka on kansio, johon VBA tallentaa oletusarvoisesti uudet tiedostot, voit vain määrittää työkirjan nimen - ilman koko polkua.

Sub OpenWorkbook () Workbooks.Open ("Examples.xlsx") End Sub

Jos työkirjaa, jota yrität avata, ei ole olemassa, näet virheen.

Tämän virheen välttämiseksi voit lisätä koodiin muutaman rivin tarkistaaksesi ensin, onko tiedosto olemassa vai ei, ja yritä avata se, jos se on olemassa.

Alla oleva koodi tarkistaisi tiedoston sijainnin ja jos sitä ei ole, se näyttää mukautetun viestin (ei virheilmoitusta):

Sub OpenWorkbook () Jos Dir ("C: \ Users \ sumit \ Documents \ Examples.xlsx") "" Sitten Workbooks.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") Muu MsgBox "Tiedosto ei 't olemassa "End If End Sub

Voit myös käyttää Avaa -valintaikkunaa avataksesi tiedoston.

Sub OpenWorkbook () On Virhe Jatka Seuraava Dim FilePath merkkijonona FilePath = Application.GetOpenFilename Workbooks.Open (FilePath) End Sub

Yllä oleva koodi avaa Avaa -valintaikkunan. Kun valitset avattavan tiedoston, se määrittää tiedoston polun FilePath -muuttujalle. Työkirjat.Open käyttää sitten tiedoston polkua tiedoston avaamiseen.

Jos käyttäjä ei avaa tiedostoa ja napsauttaa Peruuta -painiketta, FilePathista tulee False. Välttääksemme virheen saamisen tässä tapauksessa olemme käyttäneet "Virhe jatka seuraavaksi" -lauseketta.

Liittyy: Opi kaikki virheiden käsittelystä Excel VBA: ssa

Työkirjan tallentaminen

Voit tallentaa aktiivisen työkirjan käyttämällä alla olevaa koodia:

Sub SaveWorkbook () ActiveWorkbook.Save End Sub

Tämä koodi toimii työkirjoille, jotka on jo tallennettu aiemmin. Lisäksi koska työkirja sisältää edellä mainitun makron, jos sitä ei ole tallennettu .xlsm (tai .xls) -tiedostoksi, menetät makron, kun avaat sen seuraavaksi.

Jos tallennat työkirjan ensimmäistä kertaa, se näyttää alla olevan kehotteen:

Kun tallennat ensimmäistä kertaa, on parempi käyttää Tallenna -vaihtoehtoa.

Alla oleva koodi tallentaisi aktiivisen työkirjan .xlsm -tiedostona oletussijaintiin (joka on järjestelmäni asiakirjakansio).

Sub SaveWorkbook () ActiveWorkbook.SaveAs Tiedostonimi: = "Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Jos haluat tallentaa tiedoston tiettyyn paikkaan, sinun on mainittava se Tiedostonimi -arvossa. Alla oleva koodi tallentaa tiedoston työpöydälleni.

Sub SaveWorkbook () ActiveWorkbook.SaveAs Tiedostonimi: = "C: \ Users \ sumit \ Desktop \ Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Jos haluat, että käyttäjä voi valita tiedoston tallennussijainnin, voit soittaa Tallenna -valintaikkunaan. Alla oleva koodi näyttää Tallenna -valintaikkunan ja antaa käyttäjälle mahdollisuuden valita tiedoston tallennuspaikka.

Sub SaveWorkbook () Dim FilePath as String FilePath = Application.GetSaveAsFilename ActiveWorkbook.SaveAs Tiedostonimi: = FilePath & ".xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Huomaa, että FileFormat: = xlOpenXMLWorkbookMacroEnabled -sovelluksen sijaan voit käyttää myös FileFormat: = 52, jossa 52 on koodi xlOpenXMLWorkbookMacroEnabled.

Kaikki avoimet työkirjat tallennetaan

Jos sinulla on auki useita työkirjoja ja haluat tallentaa kaikki työkirjat, voit käyttää alla olevaa koodia:

Sub SaveAllWorkbooks () Dim wb kuin työkirja jokaiselle wb: lle työkirjoissa wb. Tallenna seuraava wb End Sub

Yllä oleva tallentaa kaikki työkirjat, mukaan lukien ne, joita ei ole koskaan tallennettu. Työkirjat, joita ei ole aiemmin tallennettu, tallentuvat oletussijaintiin.

Jos haluat tallentaa vain aiemmin tallennetut työkirjat, voit käyttää alla olevaa koodia:

Sub SaveAllWorkbooks () Dim wb kuin työkirja jokaiselle wb: lle työkirjoissa Jos wb.Path "" Sitten wb.Save End if Next wb End Sub

Kaikkien työkirjojen tallentaminen ja sulkeminen

Jos haluat sulkea kaikki työkirjat paitsi työkirjan, jossa on nykyinen koodi, voit käyttää alla olevaa koodia:

Sub CloseandSaveWorkbooks () Dim wb kuin työkirja jokaiselle wb: lle työkirjoissa Jos wb.Nimi ThisWorkbook.Name Sitten wb.Sulje SaveChanges: = True End Jos seuraava wb End Sub

Yllä oleva koodi sulkee kaikki työkirjat (paitsi työkirja, jossa on koodi - ThisWorkbook). Jos näihin työkirjoihin tulee muutoksia, muutokset tallennetaan. Jos työkirjaa ei ole koskaan tallennettu, se näyttää Tallenna nimellä -valintaikkunan.

Työkirjan kopion tallentaminen (aikaleimalla)

Kun työskentelen monimutkaisten tietojen ja koontinäytön kanssa Excel -työkirjoissa, luon usein erilaisia ​​versioita työkirjoistani. Tästä on apua, jos jokin menee pieleen nykyisessä työkirjassani. Haluaisin ainakin kopion siitä toisella nimellä (ja menetän vain työn, jonka tein kopion luomisen jälkeen).

Tässä on VBA -koodi, joka luo kopion työkirjasta ja tallentaa sen määritettyyn paikkaan.

Sub CreateaCopyofWorkbook () ThisWorkbook.SaveCopyAs Tiedostonimi: = "C: \ Users \ sumit \ Desktop \ BackupCopy.xlsm" Loppuosa

Yllä oleva koodi tallentaa kopion työkirjasta aina, kun suoritat tämän makron.

Vaikka tämä toimii hyvin, olisin mukavampi, jos olisin tallentanut erilaisia ​​kopioita aina, kun suoritan tämän koodin. Tämä on tärkeää siksi, että jos teen tahattoman virheen ja suoritan tämän makron, se säästää virheiden kanssa tehdyn työn. Ja minulla ei olisi pääsyä työhön ennen kuin tein virheen.

Voit käsitellä tällaisia ​​tilanteita käyttämällä alla olevaa koodia, joka tallentaa uuden kopion teoksesta aina, kun tallennat sen. Lisäksi se lisää päivämäärän ja aikaleiman osana työkirjan nimeä. Tämä voi auttaa sinua seuraamaan tekemiäsi virheitä, koska et menetä koskaan aiemmin luotuja varmuuskopioita.

Yksityinen alityökirja_BeforeSave (ByVal SaveAsUI as Boolean, Cancel as Boolean) ThisWorkbook.SaveCopyAs Tiedostonimi: = "C: \ Users \ sumit \ Desktop \ BackupCopy" & Format (Now (), "dd-mm-yy-hh-mm-ss -AMPM ") &" .xlsm "End Sub

Yllä oleva koodi luo kopion joka kerta, kun suoritat tämän makron, ja lisää päivämäärän/aikaleiman työkirjan nimeen.

Luo uusi työkirja jokaiselle laskentataulukolle

Joissakin tapauksissa sinulla voi olla työkirja, jossa on useita laskentataulukoita, ja haluat luoda työkirjan jokaiselle laskentataulukolle.

Näin voi tapahtua, jos sinulla on kuukausi/neljännesvuosittaiset raportit yhdessä työkirjassa ja haluat jakaa ne yhdeksi työkirjaksi kullekin laskentataulukolle.

Tai jos sinulla on osastoviisaita raportteja ja haluat jakaa ne yksittäisiin työkirjoihin, jotta voit lähettää nämä yksittäiset työkirjat osastojen johtajille.

Tässä on koodi, joka luo työkirjan kullekin laskentataulukolle, antaa sille saman nimen kuin laskentataulukon ja tallentaa sen määritettyyn kansioon.

Sub CreateWorkbook forWorksheets () Dim ws kuin laskentataulukko Dim wb kuin työkirja jokaiselle ws: lle tässä työkirjassa.Worksheets Set wb = Workbooks.Add ws.Copy Before: = wb.Sheets (1) Application.DisplayAlerts = False wb.Sheets (2) .Delete Application.DisplayAlerts = Todellinen wb.SaveAs "C: \ Users \ sumit \ Desktop \ Test \" & ws.Name & ".xlsx" wb.Sulje Seuraava ws End Sub

Yllä olevassa koodissa olemme käyttäneet kahta muuttujaa "ws" ja "wb".

Koodi kulkee jokaisen laskentataulukon läpi (jokaisen seuraavan silmukan avulla) ja luo sille työkirjan. Se käyttää myös laskentataulukko -objektin kopiointimenetelmää luodakseen kopion laskentataulukosta uuteen työkirjaan.

Huomaa, että olen käyttänyt SET -käskyä määrittämään wb -muuttujan mille tahansa koodilla luodulle uudelle työkirjalle.

Tämän tekniikan avulla voit määrittää työkirjaobjektin muuttujalle. Tämä käsitellään seuraavassa osassa.

Määritä työkirjan objekti muuttujalle

VBA: ssa voit määrittää objektin muuttujalle ja viitata sitten siihen muuttujan avulla.

Esimerkiksi alla olevassa koodissa käytän VBA: ta uuden työkirjan lisäämiseen ja sen jälkeen työkirjan määrittämiseen muuttujalle wb. Tätä varten minun on käytettävä SET -lauseketta.

Kun olen määrittänyt työkirjan muuttujalle, kaikki työkirjan ominaisuudet ovat myös muuttujan käytettävissä.

Sub AssigntoVariable () Dim wb Työkirjasarjana wb = Workbooks.Add wb.SaveAs Tiedostonimi: = "C: \ Users \ sumit \ Desktop \ Examples.xlsx" End Sub

Huomaa, että koodin ensimmäinen vaihe on julistaa wb työkirjatyyppiseksi muuttujaksi. Tämä kertoo VBA: lle, että tämä muuttuja voi sisältää työkirjaobjektin.

Seuraavassa lauseessa käytetään muuttujaa SET -näppäimellä lisättävään uuteen työkirjaan. Kun tämä tehtävä on tehty, voimme käyttää wb -muuttujaa työkirjan tallentamiseen (tai tehdä mitä tahansa muuta sen kanssa).

Selaa avoimia työkirjoja

Olemme jo nähneet muutamia esimerkkejä yllä olevista koodeista, jotka käyttivät koodin silmukointia.

Tässä osassa selitän erilaisia ​​tapoja selata avoimia työkirjoja VBA: n avulla.

Oletetaan, että haluat tallentaa ja sulkea kaikki avoimet työkirjat lukuun ottamatta sitä, jossa on koodi, niin voit käyttää alla olevaa koodia:

Sub CloseandSaveWorkbooks () Dim wb kuin työkirja jokaiselle wb: lle työkirjoissa Jos wb.Nimi ThisWorkbook.Name Sitten wb.Sulje SaveChanges: = True End Jos seuraava wb End Sub

Yllä oleva koodi käy jokaiselle silmukalle läpi työkirjakokoelman jokaisen työkirjan. Tätä varten meidän on ensin ilmoitettava wb työkirjatyyppiseksi muuttujaksi.

Jokaisessa silmukkajaksossa jokainen työkirjan nimi analysoidaan ja jos se ei vastaa koodin sisältävän työkirjan nimeä, se suljetaan sisällön tallentamisen jälkeen.

Sama voidaan saavuttaa myös eri silmukalla, kuten alla on esitetty:

Sub CloseTyökirjat () Dim WbCount As Integer WbCount = Työkirjat. Lasketaan i = WbCount To 1 Step -1 Jos työkirjat (i) .Nimi ThisWorkbook.Name Sitten työkirjat (i) .Sulje SaveChanges: = True End Jos seuraava i End Sub

Yllä oleva koodi sulkee For Next -silmukan kaikkien työkirjojen sulkemiseksi paitsi sen, jossa on koodi. Tässä tapauksessa meidän ei tarvitse ilmoittaa työkirjamuuttujaa, vaan sen sijaan meidän on laskettava avointen työkirjojen kokonaismäärä. Kun meillä on lasku, käytämme Seuraava -silmukkaa kunkin työkirjan läpi. Käytämme myös hakemistonumeroa viittaamaan työkirjoihin tässä tapauksessa.

Huomaa, että yllä olevassa koodissa siirrymme WbCountista arvoon 1 vaiheessa -1. Tätä tarvitaan, koska jokaisen silmukan kohdalla työkirja suljetaan ja työkirjojen määrä vähenee yhdellä.

Virhe työkirjaobjektia käsiteltäessä (ajonaikainen virhe '9')

Yksi yleisimmistä virheistä, joita saatat kohdata työskennellessäsi työkirjojen kanssa, on - Suorituksenaikainen virhe '9' - alaindeksi alueen ulkopuolella.

Yleensä VBA -virheet eivät ole kovin informatiivisia ja jättävät usein sinun päättää, mikä meni pieleen.

Tässä on joitakin mahdollisia syitä, jotka voivat johtaa tähän virheeseen:

  • Työkirjaa, jota yrität käyttää, ei ole olemassa. Jos esimerkiksi yritän käyttää viidennen työkirjan työkirjoja (5) ja jos työkirjoja on vain 4 auki, saan tämän virheilmoituksen.
  • Jos käytät väärää nimeä viitataksesi työkirjaan. Jos työkirjasi nimi on esimerkiksi Esimerkit.xlsx ja käytät Esimerkki.xlsx. sitten se näyttää tämän virheen.
  • Jos et ole tallentanut työkirjaa ja käytät laajennusta, saat tämän virheilmoituksen. Jos esimerkiksi työkirjasi nimi on Kirja1 ja käytät nimeä Kirja1.xlsx tallentamatta sitä, saat tämän virheilmoituksen.
  • Työkirja, jota yrität käyttää, on suljettu.

Hanki luettelo kaikista avoimista työkirjoista

Jos haluat saada luettelon kaikista avoimista työkirjoista nykyisessä työkirjassa (työkirjassa, jossa käytät koodia), voit käyttää alla olevaa koodia:

Sub GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Aktivoi kohdalle i = 1 Wbcount Range ("A1"). Offset (i - 1, 0). Arvo = Työkirjat (i) .Nimi Seuraava i Loppuosa

Yllä oleva koodi lisää uuden laskentataulukon ja luettelee sitten kaikkien avointen työkirjojen nimet.

Jos haluat saada myös heidän tiedostopolunsa, voit käyttää alla olevaa koodia:

Sub GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Aktivoi kohdalle i = 1 Wbcount Range ("A1"). Offset (i - 1, 0). Arvo = Työkirjat (i). Polku & "\" & Työkirjat (i) .Nimi Seuraava i Loppuosa

Avaa Määritetty työkirja kaksoisnapsauttamalla solua

Jos sinulla on luettelo Excel-työkirjojen tiedostopolkuista, voit käyttää alla olevaa koodia yksinkertaisesti kaksoisnapsauttamalla solua, jossa on tiedostopolku, ja se avaa kyseisen työkirjan.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh as Object, ByVal Target as Range, Cancel as Boolean) Työkirjat. Open Target.Value End Sub

Tämä koodi sijoitetaan ThisWorkbook -koodi -ikkunaan.

Tehdä tämä:

  • Kaksoisnapsauta ThisWorkbook -objektia projektinhallinnassa. Huomaa, että ThisWorkbook -objektin pitäisi olla työkirjassa, johon haluat tämän toiminnon.
  • Kopioi ja liitä yllä oleva koodi.

Jos sinulla on avattavien tiedostojen tarkka polku, voit tehdä sen yksinkertaisesti kaksoisnapsauttamalla tiedostopolkua ja VBA avaa heti työkirjan.

Minne laittaa VBA -koodi

Mietitkö, mihin VBA -koodi menee Excel -työkirjassa?

Excelissä on VBA -taustaohjelma, jota kutsutaan VBA -editoriksi. Sinun on kopioitava ja liitettävä koodi VB Editor -moduulin koodi -ikkunaan.

Tässä on seuraavat vaiheet:

  1. Siirry Kehittäjä -välilehdelle.
  2. Napsauta Visual Basic -vaihtoehtoa. Tämä avaa VB -editorin taustaohjelmaan.
  3. Napsauta hiiren kakkospainikkeella mitä tahansa työkirjan objektia VB Editorin Project Explorer -ruudussa, johon haluat lisätä koodin. Jos et näe Project Exploreria, siirry Näytä -välilehteen ja napsauta Project Explorer.
  4. Siirry Lisää -kohtaan ja napsauta Moduuli. Tämä lisää moduuliobjektin työkirjaasi.
  5. Kopioi ja liitä koodi moduuli -ikkunaan.

Saatat pitää myös seuraavista Excel VBA -opetusohjelmista:

  • Makron tallentaminen Exceliin.
  • Käyttäjän määrittämän toiminnon luominen Excelissä.
  • Lisäosan luominen ja käyttäminen Excelissä.
  • Makrojen palauttaminen sijoittamalla ne henkilökohtaiseen makrotyökirjaan.
  • Hanki luettelo tiedostonimistä Excelin kansiosta (VBA: n kanssa ja ilman sitä).
  • Excel VBA InStr -toiminnon käyttäminen (käytännön ESIMERKKEJÄ).
  • Tietojen lajitteleminen Excelissä VBA: n avulla (vaiheittainen opas).

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

wave wave wave wave wave