Zistite, či hárok existuje v zošite pomocou jazyka VBA v programe Microsoft Excel

Obsah

Mohlo by nastať obdobie, kedy budete musieť skontrolovať, či existuje pracovný hárok, ktorý ste vytvorili alebo odstránili v zošite v makre / kóde VBA. Môžeme to urobiť ľahko pomocou funkcie / makra. Existuje niekoľko spôsobov, ako skontrolovať, či hárok existuje.

V tomto článku sa budeme zaoberať nasledujúcimi spôsobmi:

1. Užívateľom definovaná funkcia známa ako UDF
2. Drobná rutina prostredníctvom poľa so správou

Prvá možnosť: Užívateľom definovaná funkcia

Nasledujúca snímka obsahuje niekoľko názvov hárkov a skontrolujeme, či názvy hárkov v stĺpci A existujú.

Ak chcete zistiť, či konkrétny hárok existuje, musíme pri spustení editora VB vykonať nasledujúce kroky

  • Kliknite na kartu Vývojár
  • Zo skupiny kódov vyberte Visual Basic

  • Skopírujte nižšie uvedený kód do štandardného modulu
Možnosť Explicitná funkcia WorksheetExists (ByVal WorksheetName As String) As Boolean Dim Sht as Worksheet for each Sht In ThisWorkbook.Worksheets If Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Then WorksheetExists = True Exit Function End If Next Sht WorksheetExists = Funkcia falošného konca 

  • Aby sme to mohli skontrolovať, použijeme UDF v bunke B2 ako
  • = WorksheetExists (A2)

  • Na vyššie uvedenom obrázku „MasterSheet“ v našom vzorovom zošite neexistuje; vzorec preto dal odpoveď ako nepravdivú

Vysvetlenie kódu:

Táto funkcia preberá hodnotu pre „WorksheetName“ z makra, ktoré vykonáva ďalšie činnosti. Ak to potrebujete zmeniť podľa kódu, môžete.

Pre každý Sht v ThisWorkbook.Worksheets a Ďalej Sht sú počiatočné a koncové časti slučky.

Potom Ak Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Potom

WorksheetExists = Pravda

Skontroluje, či sa názov hárka zhoduje s názvom hárka odovzdaným z hlavného makra. Ak áno, WorksheetExists je True a môžeme funkciu ukončiť. V opačnom prípade sa WorksheetExists = False vráti späť do hlavného makra. Smyčka prechádza od 1. listu k ďalšiemu, kým nie sú skontrolované všetky listy.

Druhá možnosť: Vedľajšia rutina prostredníctvom poľa so správou

Môžeme mať normálny podprogram, ktorý volá UDF, a ak sa nájde určený hárok, v okne správy sa zobrazí „hárok existuje“; ak sa nenájde, zobrazí sa okno msgbox „list sa nenašiel“.

Na kontrolu skopírujeme nasledujúci kód do štandardného modulu:

Funkcia WorksheetExists2 (názov pracovného hárka ako reťazec, voliteľné wb ako zošit) ako booleovská hodnota, ak wb nie je nič, potom nastavte wb = thisWorkbook s wb pri chybe Pokračovať ďalší WorksheetExists2 = (.Sheets (WorksheetName) .Name = WorksheetName) On Error GoTo 0 End with End Function Sub FindSheet () If WorksheetExists2 ("Sheet1") Then MsgBox "Sheet1 is in this workbook" Else MsgBox "Oops: Sheet neexistuje" End If End Sub 

Po spustení makra „FindSheet“ dostaneme nasledujúce okno so správou, ak hárok existuje:

Ak hárok neexistuje, zobrazí sa nasledujúce okno so správou:

Podobne môžeme mať jednoduchú slučku IF, ktorá skontroluje, či hárok existuje, a potom vykoná určité akcie.

Vedľajší test () Dim ws as Worksheet for each ws In ThisWorkbook.Worksheets If ws.Name "Main" Then ws.Range ("A1"). Hodnota = ws.Name Else ws.Range ("A1"). Value = " HLAVNÁ STRÁNKA PRIHLÁSENIA „Koniec, ak bude nasledovať, koniec podč 

  • Na otestovanie vyššie uvedeného makra musíme vytvoriť názov listu „Hlavný“. Toto makro je veľmi jednoduché
  • Prechádza každým pracovným listom v zošite
  • Potom skontroluje, či názov pracovného hárka nie je HLAVNÝ
  • Ak je HLAVNÝ, zobrazuje text, napríklad „HLAVNÁ PRIHLÁSENÁ STRÁNKA“ v A1 tohto listu, v opačnom prípade zobrazuje názov listu v bunke A1

  • Toto je ďalší spôsob, ako skontrolovať, či hárok existuje. Ak existuje, vykonajte akciu A, ak nie, akciu B

Záver: Môžeme zistiť, či hárok v našom zošite existuje alebo nie; môžeme použiť UDF alebo podprogram podľa vlastného uváženia.

Ak sa vám páčili naše blogy, zdieľajte ich so svojimi priateľmi na Facebooku. A tiež nás môžete sledovať na Twitteri a Facebooku.

Radi by sme vás počuli, dajte nám vedieť, ako môžeme zlepšiť, doplniť alebo inovovať našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave