ВЛООКУП у програму Екцел ВБА | Како написати ВЛООКУП код у ВБА?
Влоокуп је функција радног листа у Екцелу, али се такође може користити у ВБА, функционалност Влоокупа је слична функцији у ВБА и на радном листу, будући да је функција радног листа метода којом се Влоокуп у ВБА користи путем Апплицатион.ВорксхеетФунцтион метода и аргументи остају исти.
ВЛООКУП функција у програму Екцел ВБА
Функција ВЛООКУП у програму Екцел користи се за претрагу вредности у низу и враћање одговарајуће вредности из друге колоне. Вредност за претрагу треба да буде присутна у првој колони. Такође је потребно напоменути да ли треба тражити тачно или приближно подударање. Функција радног листа ВЛООКУП може се користити у ВБА кодирању. Функција није уграђена у ВБА и стога може позивати само помоћу радног листа.
Функција ВЛООКУП у програму Екцел има следећу синтаксу:
У којој је лоокуп_валуе вредност коју треба потражити, табле_аррраи је табела, цол_индек_нум је број колоне повратне вредности, ранге_лоокуп означава да ли је подударање тачно или приближно. ранге_лоокуп може бити ТРУЕ / ФАЛСЕ или 0/1.
У ВБА коду, функција ВЛООКУП се може користити као:
Апплицатион.ВорксхеетФунцтион.влоокуп (лоокуп_валуе, табле_арраи, цол_индек_нум, ранге_лоокуп)
Како се користи ВЛоокуп у програму Екцел ВБА?
Испод су неки примери ВЛоокуп кода у програму Екцел ВБА.
Овде можете преузети овај ВЛоокуп у Екцел ВБА предлошку - ВЛоокуп у Екцел ВБА предлошку
ВЛоокуп код у програму Екцел ВБА Пример # 1
Погледајмо како можемо позвати функцију радног листа ВЛООКУП у програму Екцел ВБА.
Претпоставимо да имате податке о личној карти, имену и просечним оценама које су добили.
Сада желите да потражите оцене које је студент стекао, са ИД 11004.
Да бисте тражили вредност, следите следеће кораке:
- Идите на картицу Девелопер и кликните на Висуал Басиц.
- Испод ВБА прозора идите на Инсерт и кликните на Модуле.
- Сада напишите ВБА ВЛООКУП код. Може се користити следећи ВБА ВЛООКУП код.
Суб влоокуп1 ()
Затамни студент_ид докле год
Мрачне ознаке као дуго
студент_ид = 11004
Постави мој опсег = опсег („Б4: Д8“)
ознаке = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (студент_ид, миранге, 3, Фалсе)
Енд Суб
Прво, дефинишите студентски ИД, који је вредност за тражење. Стога дефинишемо,
студент_ид = 11004
Даље, дефинишемо опсег у којем вредност и повратна вредност постоје. Будући да су наши подаци присутни у ћелијама Б4: Д8, опсег-опсег дефинишемо као:
Постави мој опсег = опсег („Б4: Д8“)
На крају, уносимо функцију ВЛООКУП користећи функцију Ворксхеет у променљиву, означава се као:
ознаке = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (студент_ид, миранге, 3, Фалсе)
Да бисмо штампали ознаке у оквиру за поруке, употребимо следећу команду:
МсгБок "Студент витх ИД:" & студент_ид & "добио је" & оцене & "ознаке"
Вратиће се:
Студент са личном картом: 11004 добио је 85 марака.
Сада кликните на дугме за покретање.
Приметићете да ће се на Екцел табели појавити оквир за поруку.
ВЛоокуп код у програму Екцел ВБА Пример # 2
Претпоставимо да имате податке о именима запослених и њиховој плати. Ови подаци добијају се у колонама Б и Ц. Сада треба да напишете ВБА ВЛООКУП код такав да ће се дати име запосленог у ћелији, Ф4, зарада запосленог вратити у ћелију Г4.
Напишимо ВБА ВЛООКУП код.
- Дефинишите опсег у којем су вредности присутне, тј. Колоне Б и Ц.
Постави мој опсег = опсег („Б: Ц“)
- Дефинишите име запосленог и унесите га из ћелије Ф4.
Назив скупа = опсег („Ф4“)
- Дефинишите плату као ћелију Г4.
Поставите плату = опсег („Г4“)
- Сада позовите функцију ВЛООКУП користећи ВорксхеетФунцтион у ВБА и унесите је у паи.Валуе. Ово ће вратити вредност (излаз функције Влоокуп) у ћелији Г4. Може се користити следећа синтакса:
паи.Валуе = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (име, мој опсег, 2, Нетачно)
- Сада покрените модул. Ћелија Г4 садржаће плату запосленог након покретања ВБА ВЛООКУП кода.
Претпоставимо да на радном листу промените вредност ћелије Ф4 у „Давид“ и поново покренете код, то ће вратити Давидову плату.
ВЛоокуп код у Екцел ВБА примеру бр. 3
Претпоставимо да имате податке о запосленом у вашој компанији, њихове личне карте, имена, одељења и плату. Користећи Влоокуп у ВБА, желите да добијете детаље о плати запосленог користећи његово име и одељење.
Будући да функција влоокуп у екцелу претражује вредност_тражења у само једној колони, која је прва колона низа табле_нет, потребно је да прво направите колону која садржи „Име“ и „Одељење“ сваког запосленог.
У ВБА убацимо вредности „Име“ и „Одељење“ у колону Б радног листа.
Да бисте то урадили, идите на картицу Девелопер и кликните Висуал Басиц. Затим идите на уметање и кликните Модул да бисте покренули нови модул.
Напишимо сада код, такав да колона Б садржи вредности колоне Д (име) и колоне Е.
Синтакса је дата као:
Прво, користите петљу „фор“ из и = 4, јер вредности у овом случају почињу од 4. реда. Петља ће се наставити до краја последњег реда колоне Ц. Дакле, променљива и може се користити као број реда унутар петље „фор“.
Затим унесите вредност коју желите да доделите ћелији (ред_број, колона Б), која се може дати као ћелије (и, „Б"). Вредност, као ћелија (ред_број, колона Д) и „_" & ћелија (ред_број, колона Е ).
Претпоставимо да желите да доделите ћелији Б5 = Д5 & “_” & Е5, можете једноставно користити код као:
Ћелије (5, "Б"). Вредност = Ћелије (5, "Д"). Вредност & "_" & Ћелије (5, "Е"). Вредност
Сада, нека потражимо вредност претраживања у пољу Б5: Е24, прво треба да унесете вредност претраживања. Узмимо од корисника вредност (Име и одељење). Да уради ово,
- дефинишите три променљиве, име, одељење и лоокуп_вал као низ.
- Унесите име од корисника. Користите код:
наме = ИнпутБок („Унесите име запосленог“)
Садржај у пољу за унос „Ентер тхе ..“ биће приказан у оквиру за упит када покренете код. Низ који се унесе у упит бит ће додијељен варијабли имена.
- Узмите одељење од корисника. Може се урадити слично као горе.
департмент = ИнпутБок („Унесите одељење запосленог“)
- Доделите име и одељење са „_“ као сепаратор променљивој лоокуп_вал користећи следећу синтаксу:
лоокуп_вал = име & “_” & одељење
- Напишите синтаксу влоокуп за претрагу лоокуп_вал у опсегу Б5: Е24 врати је у променљивој плати.
Иницијализујте променљиву плату:
Мама плата докле год
Користите функцију Влоокуп да бисте пронашли лоокуп_вал. Низ_табела може се дати као опсег („Б: Ф“), а плата је присутна у 5. колони. На тај начин се може користити следећа синтакса:
плата = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (лоокуп_вал, опсег („Б: Ф“), 5, нетачно)
- Да бисте одштампали плату у оквиру за поруке, користите синтаксу:
МсгБок (Плата запосленог је ”& плата)
Сада покрените код. На радном листу ће се појавити оквир за упит у који можете да унесете име. Након што унесете име (Саи Сасхи) и кликнете ОК.
Отвориће се још једно поље у којем можете ући у одељење. Након што уђете у одељење, реците ИТ.
Одштампаће плату запосленог.
Ако Влоокуп пронађе било ког запосленог са именом и одељењем, испашће грешка. Претпоставимо да дате име „Висхну“ и одељење „ИТ“, вратиће вам грешку у току „1004“.
Да бисте решили овај проблем, можете да наведете у коду да уместо тога на овој врсти грешке одштампате „Вредност није пронађена“. Да уради ово,
- Пре употребе влоокуп синтаксе, користите следећи код-
На грешку ГоТо Мессаге
Проверавати:
Пратећи код (Цхецк :) ће се надгледати и ако добије било какву грешку, прећи ће на изјаву „порука“
- На крају кода (Бефоре Енд Суб) наведите да ако је број грешке 1004, одштампајте у оквиру за поруку „Подаци о запосленом нису присутни“. То се може урадити користећи синтаксу:
Порука:
Ако је Ерр.Нумбер = 1004 Тада
МсгБок („Подаци о запосленима нису присутни“)
Крај ако
Модул 1:
Суб влоокуп3 ()За и = 4 до ћелија (редови.број, „Ц“). Крај (клУп). Ред
Ћелије (и, „Б"). Вредност = Ћелије (и, „Д"). Вредност & "_" & Ћелије (и, „Е“). Вредност
Следеће име иДим Ас Стринг
Дим одсек Као низ
Затамни лоокуп_вал као низ
Слаба плата као Лонгнаме = ИнпутБок („Унесите име запосленог“)
департмент = ИнпутБок („Унесите одељење запосленог“)
лоокуп_вал = наме & “_” & департментОн Грешка ГоТо Мессаге
проверавати:
плата = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (лоокуп_вал, опсег („Б: Ф“), 5, нетачно)
МсгБок („Плата запосленог је“ и плата) Порука:
Ако је Ерр.Нумбер = 1004 Тада
МсгБок („Подаци о запосленима нису присутни“)
Крај ИфЕнд Суб
Ствари које треба запамтити о ВЛоокуп-у у програму Екцел ВБА
- Функција Влоокуп се може позвати у програму Екцел ВБА помоћу ВорксхеетФунцтион.
- Синтакса функције влоокуп остаје иста у Екцел ВБА.
- Када ВБА влоокуп код не може да пронађе лоокуп_валуе, даће грешку 1004.
- Грешком у функцији влоокуп може се управљати помоћу израза гото ако врати грешку.