Можда ћете морати да проверите да ли постоји радни лист који сте креирали или избрисали у радној свесци у ВБА макро / коду. То можемо лако учинити помоћу функције / макроа. Постоји више начина за проверу да ли радни лист постоји.
У овом чланку ћемо обрадити следеће начине:
1. Кориснички дефинисана функција позната као УДФ
2. Потпрограм кроз оквир за поруку
Прва опција: Кориснички дефинисана функција
Следећи снимак садржи неколико назива листова и проверићемо да ли постоје називи листова у колони А.
Да бисмо сазнали постоји ли одређени лист, морамо слиједити доње кораке за покретање ВБ уређивача
- Кликните на картицу Девелопер
- Из групе кодова изаберите Висуал Басиц
- Копирајте доњи код у стандардни модул
Опција Експлицитна функција Радни листЕкистс (БиВал ВорксхеетНаме Ас Стринг) Као Боолеан Дим Схт Као радни лист за сваки Схт у ТхисВоркбоок.Ворксхеетс Иф Апплицатион.Пропер (Схт.Наме) = Апплицатион.Пропер (ВорксхеетНаме) Онда ВорксхеетЕкистс = Труе Екит Функција НектЕктЕксет Функционише = Фалсе Енд функција
- Да бисмо проверили, користићемо УДФ у ћелији Б2 као
- = Радни лист Постоји (А2)
- На горњој слици „МастерСхеет“ не постоји у нашем узорку радне свеске; стога је формула дала одговор као Нетачан
Објашњење кода:
Ова функција узима вриједност за „ВорксхеетНаме“ из макроа који обавља друге активности. Ако морате да је промените према свом коду, можете.
За сваки запис у овој радној свесци.Радни листови и Нект Схт су почетни и завршни део петље.
Онда Ако је Апплицатион.Пропер (Схт.Наме) = Апплицатион.Пропер (ВорксхеетНаме) Затим
Радни лист Постоји = Тачно
Проверава да ли се назив листа подудара са именом листа који је пренет из главног макроа. Ако се то догоди, ВорксхеетЕкистс је Труе и можемо изаћи из функције. У супротном, ВорксхеетЕкистс = Фалсе се враћа назад у главни макро. Петља иде од првог листа до следећег док се сви листови не провере.
Друга опција: Потпрограм кроз оквир за поруку
Можемо имати нормалну потпрограму која позива УДФ и, ако се пронађе наведени лист, оквир за поруку ће приказати, „лист постоји“; ако није пронађен, појавиће се мсгбок, „лист није пронађен“.
Да бисмо проверили, копираћемо следећи код у стандардни модул:
Функција Радни листЕкистс2 (Назив радног листа као низ, опционално вб као радна свеска) Као логичко Ако вб није ништа Тада поставите вб = ТхисВоркбоок Витх вб Он Еррор Настави следећи ВорксхеетЕкистс2 = (.Схеетс (ВорксхеетНаме)) .Назив = Назив радног листа Он Еррор ГоТо 0 Енд витх Енд Суб ФиндСхеет () Иф ВорксхеетЕкистс2 ("Схеет1") Тхен МсгБок "Схеет1 ис ин тхис воркбоок" Елсе МсгБок "Упс: Лист не постоји" Енд Иф Енд Суб
Након покретања макроа „ФиндСхеет“, добићемо следеће поље за поруку ако лист постоји:
Ако Лист не постоји, добићемо следеће поље за поруку:
Слично, можемо имати једноставну ИФ петљу која проверава да ли лист постоји и након тога изводи одређене радње.
Под тест () Дим вс као радни лист за сваки вс у ТхисВоркбоок.Ворксхеетс Иф вс.Наме "Маин" Тхен вс.Ранге ("А1"). Валуе = вс.Наме Елсе вс.Ранге ("А1"). Валуе = " ГЛАВНА СТРАНА ЗА ПРИЈАВУ "Енд Иф Нект вс Енд Суб
- Да бисмо тестирали горњи макро, морамо креирати назив листа „Маин“. Овај макро је врло једноставан
- Он се провлачи кроз сваки радни лист у радној свесци
- Затим проверава да ли назив радног листа није МАИН
- Ако је МАИН, приказује текст, попут „МАИН ЛОГИН ПАГЕ“ на А1 тог листа, иначе приказује назив листа у ћелији А1
- Ово је само још један начин провере да ли лист постоји. Ако постоји, изведите акцију А, ако не, радњу Б.
Закључак: Можемо идентификовати да ли лист постоји у нашој радној свесци или не; можемо користити УДФ или потпрограм како нам одговара.
Ако вам се допадају наши блогови, поделите их са пријатељима на Фацебооку. Такође нас можете пратити на Твиттер -у и Фацебоок -у.
Волели бисмо да чујемо од вас, реците нам како можемо побољшати, допунити или иновирати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште