Voi olla aika, jolloin sinun on tarkistettava, onko laskentataulukko, jonka olet luonut tai poistanut työkirjasta VBA -makro / koodi, olemassa. Voimme tehdä tämän helposti funktion / makron avulla. Laskentataulukon olemassaolon voi tarkistaa useilla tavoilla.
Tässä artikkelissa käsitellään seuraavia tapoja:
1. Käyttäjän määrittämä toiminto, joka tunnetaan nimellä UDF
2. Alirutiini viestiruudun kautta
Ensimmäinen vaihtoehto: Käyttäjän määrittämä toiminto
Seuraava tilannevedos sisältää muutamia arkkien nimiä ja tarkistamme, onko sarakkeessa A olevan taulukon nimet olemassa.
Jotta voimme selvittää, onko olemassa tietty taulukko, meidän on suoritettava seuraavat vaiheet VB -editorin käynnistämiseksi
- Napsauta Kehittäjä -välilehteä
- Valitse koodiryhmästä Visual Basic
- Kopioi alla oleva koodi vakiomoduuliin
Vaihtoehto Explicit Function WorksheetExists (ByVal WorksheetName As String) Boolean Dim Sht kuin laskentataulukko jokaiselle tämän työkirjaan Sht. = False End Function
- Tarkistaaksemme käytämme UDF: ää solussa B2 as
- = WorksheetExists (A2)
- Yllä olevassa kuvassa "MasterSheet" ei ole mallityökirjassamme; joten kaava on antanut vastauksen epätosi
Koodin selitys:
Tämä toiminto ottaa "WorksheetName" -arvon makrosta, joka suorittaa muita toimintoja. Jos haluat muuttaa sitä koodisi mukaisesti, voit.
Jokaiselle tämän työkirjan sivulle ja Seuraava Sht ovat silmukan alku- ja loppuosat.
Sitten Jos Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Sitten
WorksheetExists = Totta
Tarkistaa, vastaako taulukon nimi päämakrosta välitettyä taulukon nimeä. Jos näin on, WorksheetExists on True, ja voimme poistua toiminnosta. Muussa tapauksessa WorksheetExists = False palautetaan takaisin päämakroon. Silmukka siirtyy ensimmäiseltä arkilta toiselle, kunnes kaikki arkit on tarkistettu.
Toinen vaihtoehto: alirutiini viestiruudun kautta
Meillä voi olla normaali aliohjelma, joka kutsuu UDF: ää, ja jos määritetty taulukko löytyy, sanomaruudussa näkyy "arkki olemassa"; jos sitä ei löydy, viestilaatikko avautuu, "taulukkoa ei löydy".
Tarkistaaksemme kopioimme seuraavan koodin vakiomoduuliin:
Toiminto WorksheetExists2 (WorksheetName kuin merkkijono, valinnainen wb kuin työkirja) Boolenä, jos wb ei ole mitään sitten Aseta wb = ThisWorkbook with wb On Error Jatka seuraava laskentataulukkoExists2 = (.Sheets (WorksheetName) .Name = WorksheetName) Ongelma GoTo 0 End with End Function Osa FindSheet () Jos laskentataulukkoExists2 ("Sheet1") Sitten MsgBox "Sheet1 on tässä työkirjassa" Else MsgBox "Hups: Sheet ei ole olemassa" End If End Sub
Kun FindSheet -makro on suoritettu, saamme seuraavan viestiruudun, jos arkki on olemassa:
Jos taulukkoa ei ole, saamme seuraavan viestiruudun:
Samoin meillä voi olla yksinkertainen IF -silmukka, joka tarkistaa, onko arkki olemassa ja suorittaa tiettyjä toimintoja sen jälkeen.
Alatesti () Dim ws laskentataulukkona jokaiselle tämän työkirjan ws: lle. Työsivut Jos ws.Name "Main" Sitten ws.Range ("A1"). Value = ws.Name Else ws.Range ("A1"). Value = " PÄÄKIRJOITUSSIVU "Lopeta, jos seuraava ws End Sub
- Yllä olevan makron testaamiseksi meidän on luotava taulukon nimi "Main". Tämä makro on hyvin yksinkertainen
- Se kiertää työkirjan jokaisen laskentataulukon
- Sitten se tarkistaa, onko laskentataulukon nimi PÄÄKOHTAINEN
- Jos se on PÄÄKOHTA, se näyttää tekstiä, kuten "PÄÄKIRJASIVU" kyseisen arkin A1: ssä, muuten se näyttää taulukon nimen solussa A1
- Tämä on vain yksi tapa tarkistaa, onko arkki olemassa. Jos se on olemassa, suorita toiminto A, jos ei, toimi B
Johtopäätös: Voimme tunnistaa, onko arkki työkirjassamme vai ei; voimme käyttää UDF: ää tai aliohjelmaa sopivasti.
Jos pidit blogistamme, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.
Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa, täydentää tai innovoida työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse