Gali būti laikas, kai turite patikrinti, ar yra darbalapis, kurį sukūrėte arba ištrynėte VBA makrokomandos / kodo darbaknygėje. Tai galime padaryti lengvai naudodami funkciją / makrokomandą. Yra keli būdai patikrinti, ar yra darbalapis.
Šiame straipsnyje aptarsime šiuos būdus:
1. Vartotojo apibrėžta funkcija, žinoma kaip UDF
2. Papildoma rutina per pranešimų laukelį
Pirmasis variantas: vartotojo apibrėžta funkcija
Šioje momentinėje nuotraukoje yra keletas lapų pavadinimų ir mes patikrinsime, ar A stulpelio lapų pavadinimai egzistuoja.
Norėdami sužinoti, ar yra konkretus lapas, turime atlikti toliau nurodytus veiksmus, kad paleistume VB redaktorių
- Spustelėkite skirtuką Kūrėjas
- Iš kodų grupės pasirinkite „Visual Basic“
- Nukopijuokite žemiau esantį kodą į standartinį modulį
Parinktis Aiškių funkcijų darbalapis Egzistuoja („ByVal“ darbalapio pavadinimas kaip eilutė) Kaip „Boolean Dim Sht“ kaip kiekvieno „Sht“ darbalapis šioje darbo knygoje. Darbo lapai, jei yra taikymas. Tinkamas („Sht.Name“) = „Application.Proper“ („WorksheetName“) Tada „WorksheetExists“ = „True Exit“ funkcijos pabaiga, jei kitas „Sht“ darbalapis = False End Function
- Norėdami patikrinti, mes naudosime UDF langelyje B2 kaip
- = Darbalapis Egzistuoja (A2)
- Aukščiau esančiame paveikslėlyje „MasterSheet“ mūsų pavyzdinėje darbo knygoje nėra; taigi formulė atsakė kaip klaidinga
Kodo paaiškinimas:
Ši funkcija paima makrokomandos „WorksheetName“ vertę, kuri atlieka kitą veiklą. Jei jums reikia jį pakeisti pagal savo kodą, galite.
Už kiekvieną „Sht In ThisWorkbook.Worksheets“ ir Kitas Sht yra atitinkamai kilpos pradžios ir pabaigos dalys.
Tada Jei Application.Proper (Sht.Name) = Application.Proper (WorksheetName) Tada
WorksheetExists = Tiesa
Tikrina, ar lapo pavadinimas atitinka lapo pavadinimą, perduotą iš pagrindinės makrokomandos. Jei taip, „WorksheetExists“ yra tiesa, ir mes galime išeiti iš funkcijos. Priešingu atveju „WorksheetExists = False“ grąžinama į pagrindinę makrokomandą. Kilpa eina iš pirmo lapo į kitą, kol bus patikrinti visi lapai.
Antrasis variantas: papildoma rutina per pranešimų laukelį
Mes galime turėti įprastą paprogramę, kuri skambina UDF, ir, jei nurodytas lapas bus rastas, pranešimų laukelyje bus rodoma „lapas egzistuoja“; jei nerastas, pasirodys „msgbox“, „lapas nerastas“.
Norėdami patikrinti, į standartinį modulį nukopijuosime šį kodą:
Funkcija WorksheetExists2 (darbalapio pavadinimas kaip eilutė, pasirinktinai wb kaip darbaknygė) kaip loginis, jei wb nėra nieko, tada nustatykite wb = ThisWorkbook with wb On Error Tęskite kitą darbalapįExists2 = (.Sheets (WorksheetName). Sub FindSheet () Jei WorksheetExists2 ("Sheet1"), tada MsgBox "Sheet1 yra šioje darbo knygoje" Else MsgBox "Oi: lapo nėra" End End End Sub
Paleidę makrokomandą „FindSheet“, gausime šį pranešimų laukelį, jei lapas yra:
Jei lapo nėra, gausime šį pranešimų laukelį:
Panašiai galime turėti paprastą IF ciklą, kuris patikrina, ar lapas yra, ir vėliau atlieka tam tikrus veiksmus.
Sub testas () Dim ws kaip darbalapis kiekvienam ww šioje darbo knygoje. Darbo lapai Jei ws.Name "Main" Tada ws.Range ("A1"). Value = ws.Name El. Ws.Range ("A1"). Value = " PAGRINDINIS PRISIJUNGIMO PUSLAPIS „Pabaiga, jei kitas ir pabaiga
- Norėdami išbandyti aukščiau pateiktą makrokomandą, turime sukurti lapo pavadinimą „Pagrindinis“. Ši makrokomanda yra labai paprasta
- Jis perkeliamas per kiekvieną darbo knygos darbalapį
- Tada ji patikrina, ar darbalapio pavadinimas nėra PAGRINDINIS
- Jei jis yra PAGRINDINIS, jis pateikia tekstą, pvz., „PAGRINDINIS PRISIJUNGIMO PUSLAPIS“ to lapo A1, kitaip jis rodo lapo pavadinimą langelyje A1
- Tai tik dar vienas būdas patikrinti, ar lapas yra. Jei jis yra, atlikite veiksmą A, jei ne, veiksmą B
Išvada: Galime nustatyti, ar lapas yra mūsų darbo knygoje, ar ne; mes galime naudoti UDF arba paprogramę, kaip mums patogiau.
Jei jums patiko mūsų tinklaraščiai, pasidalykite jais su draugais „Facebook“. Taip pat galite sekti mus „Twitter“ ir „Facebook“.
Mes norėtume išgirsti jūsų nuomonę, praneškite mums, kaip galime patobulinti, papildyti ar naujovinti savo darbą ir padaryti jį geresnį. Parašykite mums el