Утврдите да ли лист постоји у радној свесци помоћу ВБА у програму Мицрософт Екцел

Преглед садржаја

Можда ћете морати да проверите да ли постоји радни лист који сте креирали или избрисали у радној свесци у ВБА макро / коду. То можемо лако учинити помоћу функције / макроа. Постоји више начина за проверу да ли радни лист постоји.

У овом чланку ћемо обрадити следеће начине:

1. Кориснички дефинисана функција позната као УДФ
2. Потпрограм кроз оквир за поруку

Прва опција: Кориснички дефинисана функција

Следећи снимак садржи неколико назива листова и проверићемо да ли постоје називи листова у колони А.

Да бисмо сазнали постоји ли одређени лист, морамо слиједити доње кораке за покретање ВБ уређивача

  • Кликните на картицу Девелопер
  • Из групе кодова изаберите Висуал Басиц

  • Копирајте доњи код у стандардни модул
Опција Експлицитна функција Радни листЕкистс (БиВал ВорксхеетНаме Ас Стринг) Као Боолеан Дим Схт Као радни лист за сваки Схт у ТхисВоркбоок.Ворксхеетс Иф Апплицатион.Пропер (Схт.Наме) = Апплицатион.Пропер (ВорксхеетНаме) Онда ВорксхеетЕкистс = Труе Екит Функција НектЕктЕксет Функционише = Фалсе Енд функција 

  • Да бисмо проверили, користићемо УДФ у ћелији Б2 као
  • = Радни лист Постоји (А2)

  • На горњој слици „МастерСхеет“ не постоји у нашем узорку радне свеске; стога је формула дала одговор као Нетачан

Објашњење кода:

Ова функција узима вриједност за „ВорксхеетНаме“ из макроа који обавља друге активности. Ако морате да је промените према свом коду, можете.

За сваки запис у овој радној свесци.Радни листови и Нект Схт су почетни и завршни део петље.

Онда Ако је Апплицатион.Пропер (Схт.Наме) = Апплицатион.Пропер (ВорксхеетНаме) Затим

Радни лист Постоји = Тачно

Проверава да ли се назив листа подудара са именом листа који је пренет из главног макроа. Ако се то догоди, ВорксхеетЕкистс је Труе и можемо изаћи из функције. У супротном, ВорксхеетЕкистс = Фалсе се враћа назад у главни макро. Петља иде од првог листа до следећег док се сви листови не провере.

Друга опција: Потпрограм кроз оквир за поруку

Можемо имати нормалну потпрограму која позива УДФ и, ако се пронађе наведени лист, оквир за поруку ће приказати, „лист постоји“; ако није пронађен, појавиће се мсгбок, „лист није пронађен“.

Да бисмо проверили, копираћемо следећи код у стандардни модул:

Функција Радни листЕкистс2 (Назив радног листа као низ, опционално вб као радна свеска) Као логичко Ако вб није ништа Тада поставите вб = ТхисВоркбоок Витх вб Он Еррор Настави следећи ВорксхеетЕкистс2 = (.Схеетс (ВорксхеетНаме)) .Назив = Назив радног листа Он Еррор ГоТо 0 Енд витх Енд Суб ФиндСхеет () Иф ВорксхеетЕкистс2 ("Схеет1") Тхен МсгБок "Схеет1 ис ин тхис воркбоок" Елсе МсгБок "Упс: Лист не постоји" Енд Иф Енд Суб 

Након покретања макроа „ФиндСхеет“, добићемо следеће поље за поруку ако лист постоји:

Ако Лист не постоји, добићемо следеће поље за поруку:

Слично, можемо имати једноставну ИФ петљу која проверава да ли лист постоји и након тога изводи одређене радње.

Под тест () Дим вс као радни лист за сваки вс у ТхисВоркбоок.Ворксхеетс Иф вс.Наме "Маин" Тхен вс.Ранге ("А1"). Валуе = вс.Наме Елсе вс.Ранге ("А1"). Валуе = " ГЛАВНА СТРАНА ЗА ПРИЈАВУ "Енд Иф Нект вс Енд Суб 

  • Да бисмо тестирали горњи макро, морамо креирати назив листа „Маин“. Овај макро је врло једноставан
  • Он се провлачи кроз сваки радни лист у радној свесци
  • Затим проверава да ли назив радног листа није МАИН
  • Ако је МАИН, приказује текст, попут „МАИН ЛОГИН ПАГЕ“ на А1 тог листа, иначе приказује назив листа у ћелији А1

  • Ово је само још један начин провере да ли лист постоји. Ако постоји, изведите акцију А, ако не, радњу Б.

Закључак: Можемо идентификовати да ли лист постоји у нашој радној свесци или не; можемо користити УДФ или потпрограм како нам одговара.

Ако вам се допадају наши блогови, поделите их са пријатељима на Фацебооку. Такође нас можете пратити на Твиттер -у и Фацебоок -у.

Волели бисмо да чујемо од вас, реците нам како можемо побољшати, допунити или иновирати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave