Ugotovite, ali list obstaja v delovnem zvezku z uporabo VBA v programu Microsoft Excel

Anonim

Včasih lahko preverite, ali obstaja delovni list, ki ste ga ustvarili ali izbrisali v delovnem zvezku v makroju / kodi VBA. To lahko preprosto naredimo s funkcijo / makrom. Obstaja več načinov preverjanja, ali obstaja delovni list.

V tem članku bomo obravnavali naslednje načine:

1. Uporabniško definirana funkcija, znana kot UDF
2. Podprogram skozi okno s sporočilom

Prva možnost: Uporabniško določena funkcija

Naslednji posnetek vsebuje nekaj imen listov in preverili bomo, ali imena listov v stolpcu A obstajajo.

Če želimo ugotoviti, ali obstaja določen list, moramo slediti spodnjim korakom za zagon urejevalnika VB

  • Kliknite zavihek Razvijalec
  • V skupini Koda izberite Visual Basic

  • Kopirajte spodnjo kodo v standardni modul
Možnost Delovni list eksplicitne funkcijeExists (ByVal WorksheetName As String) Kot Boolean Dim Sht Kot delovni list za vsak Sht v tem delovnem zvezku. = Funkcija napačnega konca 

  • Za preverjanje bomo uporabili UDF v celici B2 kot
  • = Delovni list Obstaja (A2)

  • Na zgornji sliki »MasterSheet« ne obstaja v našem vzorčnem delovnem zvezku; zato je formula dala odgovor kot napačno

Koda Pojasnilo:

Ta funkcija vzame vrednost za »Ime delovnega lista« iz makra, ki izvaja druge dejavnosti. Če ga morate spremeniti v skladu s svojo kodo, lahko.

Za vsak sht v tej delovni knjigi. Delovni listi in Naslednji Sht sta začetni in končni del zanke.

Potem Če je Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Potem

Delovni listExists = True

Preveri, ali se ime lista ujema z imenom lista, posredovanega iz glavnega makra. Če se to zgodi, je WorksheetExists True in lahko zapustimo funkcijo. V nasprotnem primeru se WorksheetExists = False vrne nazaj v glavni makro. Zanka gre od prvega lista do naslednjega, dokler niso pregledani vsi listi.

Druga možnost: Podprogram skozi okno s sporočilom

Lahko imamo običajno podprogram, ki kliče UDF in če se najde določen list, se bo v oknu s sporočilom prikazalo „list obstaja“; če ni najden, se prikaže sporočilo msgbox, "lista ni mogoče najti".

Za preverjanje bomo v standardni modul kopirali naslednjo kodo:

Funkcija Delovni listExists2 (Ime delovnega lista kot niz, neobvezno wb kot delovni zvezek) Kot logično vrednost Če wb ni nič, potem nastavite wb = ThisWorkbook With wb On Error Nadaljuj naslednji delovni list Sub FindSheet () Če WorksheetExists2 ("Sheet1") Potem je MsgBox "Sheet1 v tem delovnem zvezku" Else MsgBox "Ups: List ne obstaja" End If End Sub 

Po zagonu makra »FindSheet« bomo dobili naslednje polje s sporočilom, če list obstaja:

Če List ne obstaja, bomo dobili naslednje polje s sporočilom:

Podobno imamo lahko preprosto zanko IF, ki preveri, ali list obstaja, in nato izvede določena dejanja.

Pod test () Zatemni ws kot delovni list za vsak ws v tej delovni knjigi. Delovni listi If ws.Name "Main" Potem ws.Range ("A1"). Vrednost = ws.Name Druge ws.Range ("A1"). Value = " GLAVNA PRIJAVNA STRAN "End If Next ws End Sub 

  • Za preizkus zgornjega makra moramo ustvariti ime lista "Main". Ta makro je zelo preprost
  • Poteka skozi vsak delovni list v delovnem zvezku
  • Nato preveri, ali ime delovnega lista ni MAIN
  • Če je MAIN, prikaže besedilo, na primer »GLAVNA PRIJAVNA STRAN« v A1 tega lista, sicer pa prikaže ime lista v celici A1

  • To je le še en način preverjanja, ali list obstaja. Če obstaja, izvedite dejanje A, če ne, dejanje B

Zaključek: Lahko ugotovimo, ali list obstaja v našem delovnem zvezku ali ne; lahko uporabimo UDF ali podprogram, kot nam ustreza.

Če so vam bili naši blogi všeč, jih delite s prijatelji na Facebooku. Prav tako nas lahko spremljate na Twitterju in Facebooku.

Radi bi slišali od vas, nam sporočite, kako lahko izboljšamo, dopolnimo ali inoviramo svoje delo in ga izboljšamo. Pišite nam na spletni strani elektronske pošte