ВЛООКУП у програму Екцел ВБА | Како написати ВЛООКУП код у ВБА?

Влоокуп је функција радног листа у Екцелу, али се такође може користити у ВБА, функционалност Влоокупа је слична функцији у ВБА и на радном листу, будући да је функција радног листа метода којом се Влоокуп у ВБА користи путем Апплицатион.ВорксхеетФунцтион метода и аргументи остају исти.

ВЛООКУП функција у програму Екцел ВБА

Функција ВЛООКУП у програму Екцел користи се за претрагу вредности у низу и враћање одговарајуће вредности из друге колоне. Вредност за претрагу треба да буде присутна у првој колони. Такође је потребно напоменути да ли треба тражити тачно или приближно подударање. Функција радног листа ВЛООКУП може се користити у ВБА кодирању. Функција није уграђена у ВБА и стога може позивати само помоћу радног листа.

Функција ВЛООКУП у програму Екцел има следећу синтаксу:

У којој је лоокуп_валуе вредност коју треба потражити, табле_аррраи је табела, цол_индек_нум је број колоне повратне вредности, ранге_лоокуп означава да ли је подударање тачно или приближно. ранге_лоокуп може бити ТРУЕ / ФАЛСЕ или 0/1.

У ВБА коду, функција ВЛООКУП се може користити као:

Апплицатион.ВорксхеетФунцтион.влоокуп (лоокуп_валуе, табле_арраи, цол_индек_нум, ранге_лоокуп)

Како се користи ВЛоокуп у програму Екцел ВБА?

Испод су неки примери ВЛоокуп кода у програму Екцел ВБА.

Овде можете преузети овај ВЛоокуп у Екцел ВБА предлошку - ВЛоокуп у Екцел ВБА предлошку

ВЛоокуп код у програму Екцел ВБА Пример # 1

Погледајмо како можемо позвати функцију радног листа ВЛООКУП у програму Екцел ВБА.

Претпоставимо да имате податке о личној карти, имену и просечним оценама које су добили.

Сада желите да потражите оцене које је студент стекао, са ИД 11004.

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

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

  • Испод ВБА прозора идите на Инсерт и кликните на Модуле.

  • Сада напишите ВБА ВЛООКУП код. Може се користити следећи ВБА ВЛООКУП код.

Суб влоокуп1 ()

Затамни студент_ид докле год

Мрачне ознаке као дуго

студент_ид = 11004

Постави мој опсег = опсег („Б4: Д8“)

ознаке = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (студент_ид, миранге, 3, Фалсе)

Енд Суб

Прво, дефинишите студентски ИД, који је вредност за тражење. Стога дефинишемо,

студент_ид = 11004

Даље, дефинишемо опсег у којем вредност и повратна вредност постоје. Будући да су наши подаци присутни у ћелијама Б4: Д8, опсег-опсег дефинишемо као:

Постави мој опсег = опсег („Б4: Д8“)

На крају, уносимо функцију ВЛООКУП користећи функцију Ворксхеет у променљиву, означава се као:

ознаке = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (студент_ид, миранге, 3, Фалсе)

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

МсгБок "Студент витх ИД:" & студент_ид & "добио је" & оцене & "ознаке"

Вратиће се:

Студент са личном картом: 11004 добио је 85 марака.

Сада кликните на дугме за покретање.

Приметићете да ће се на Екцел табели појавити оквир за поруку.

ВЛоокуп код у програму Екцел ВБА Пример # 2

Претпоставимо да имате податке о именима запослених и њиховој плати. Ови подаци добијају се у колонама Б и Ц. Сада треба да напишете ВБА ВЛООКУП код такав да ће се дати име запосленог у ћелији, Ф4, зарада запосленог вратити у ћелију Г4.

Напишимо ВБА ВЛООКУП код.

  1. Дефинишите опсег у којем су вредности присутне, тј. Колоне Б и Ц.

Постави мој опсег = опсег („Б: Ц“)

  1. Дефинишите име запосленог и унесите га из ћелије Ф4.

Назив скупа = опсег („Ф4“)

  1. Дефинишите плату као ћелију Г4.

Поставите плату = опсег („Г4“)

  1. Сада позовите функцију ВЛООКУП користећи ВорксхеетФунцтион у ВБА и унесите је у паи.Валуе. Ово ће вратити вредност (излаз функције Влоокуп) у ћелији Г4. Може се користити следећа синтакса:

паи.Валуе = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (име, мој опсег, 2, Нетачно)

  1. Сада покрените модул. Ћелија Г4 садржаће плату запосленог након покретања ВБА ВЛООКУП кода.

Претпоставимо да на радном листу промените вредност ћелије Ф4 у „Давид“ и поново покренете код, то ће вратити Давидову плату.

ВЛоокуп код у Екцел ВБА примеру бр. 3

Претпоставимо да имате податке о запосленом у вашој компанији, њихове личне карте, имена, одељења и плату. Користећи Влоокуп у ВБА, желите да добијете детаље о плати запосленог користећи његово име и одељење.

Будући да функција влоокуп у екцелу претражује вредност_тражења у само једној колони, која је прва колона низа табле_нет, потребно је да прво направите колону која садржи „Име“ и „Одељење“ сваког запосленог.

У ВБА убацимо вредности „Име“ и „Одељење“ у колону Б радног листа.

Да бисте то урадили, идите на картицу Девелопер и кликните Висуал Басиц. Затим идите на уметање и кликните Модул да бисте покренули нови модул.

Напишимо сада код, такав да колона Б садржи вредности колоне Д (име) и колоне Е.

Синтакса је дата као:

Прво, користите петљу „фор“ из и = 4, јер вредности у овом случају почињу од 4. реда. Петља ће се наставити до краја последњег реда колоне Ц. Дакле, променљива и може се користити као број реда унутар петље „фор“.

Затим унесите вредност коју желите да доделите ћелији (ред_број, колона Б), која се може дати као ћелије (и, „Б"). Вредност, као ћелија (ред_број, колона Д) и „_" & ћелија (ред_број, колона Е ).

Претпоставимо да желите да доделите ћелији Б5 = Д5 & “_” & Е5, можете једноставно користити код као:

Ћелије (5, "Б"). Вредност = Ћелије (5, "Д"). Вредност & "_" & Ћелије (5, "Е"). Вредност

Сада, нека потражимо вредност претраживања у пољу Б5: Е24, прво треба да унесете вредност претраживања. Узмимо од корисника вредност (Име и одељење). Да уради ово,

  1. дефинишите три променљиве, име, одељење и лоокуп_вал као низ.
  2. Унесите име од корисника. Користите код:

наме = ИнпутБок („Унесите име запосленог“)

Садржај у пољу за унос „Ентер тхе ..“ биће приказан у оквиру за упит када покренете код. Низ који се унесе у упит бит ће додијељен варијабли имена.

  1. Узмите одељење од корисника. Може се урадити слично као горе.

департмент = ИнпутБок („Унесите одељење запосленог“)

  1. Доделите име и одељење са „_“ као сепаратор променљивој лоокуп_вал користећи следећу синтаксу:

лоокуп_вал = име & “_” & одељење

  1. Напишите синтаксу влоокуп за претрагу лоокуп_вал у опсегу Б5: Е24 врати је у променљивој плати.

Иницијализујте променљиву плату:

Мама плата докле год

Користите функцију Влоокуп да бисте пронашли лоокуп_вал. Низ_табела може се дати као опсег („Б: Ф“), а плата је присутна у 5. колони. На тај начин се може користити следећа синтакса:

плата = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (лоокуп_вал, опсег („Б: Ф“), 5, нетачно)

  1. Да бисте одштампали плату у оквиру за поруке, користите синтаксу:

МсгБок (Плата запосленог је ”& плата)

Сада покрените код. На радном листу ће се појавити оквир за упит у који можете да унесете име. Након што унесете име (Саи Сасхи) и кликнете ОК.

Отвориће се још једно поље у којем можете ући у одељење. Након што уђете у одељење, реците ИТ.

Одштампаће плату запосленог.

Ако Влоокуп пронађе било ког запосленог са именом и одељењем, испашће грешка. Претпоставимо да дате име „Висхну“ и одељење „ИТ“, вратиће вам грешку у току „1004“.

Да бисте решили овај проблем, можете да наведете у коду да уместо тога на овој врсти грешке одштампате „Вредност није пронађена“. Да уради ово,

  1. Пре употребе влоокуп синтаксе, користите следећи код-

На грешку ГоТо Мессаге

Проверавати:

Пратећи код (Цхецк :) ће се надгледати и ако добије било какву грешку, прећи ће на изјаву „порука“

  1. На крају кода (Бефоре Енд Суб) наведите да ако је број грешке 1004, одштампајте у оквиру за поруку „Подаци о запосленом нису присутни“. То се може урадити користећи синтаксу:

Порука:

Ако је Ерр.Нумбер = 1004 Тада

МсгБок („Подаци о запосленима нису присутни“)

Крај ако

Модул 1:

Суб влоокуп3 ()

За и = 4 до ћелија (редови.број, „Ц“). Крај (клУп). Ред

Ћелије (и, „Б"). Вредност = Ћелије (и, „Д"). Вредност & "_" & Ћелије (и, „Е“). Вредност

Следеће име иДим Ас Стринг

Дим одсек Као низ

Затамни лоокуп_вал као низ

Слаба плата као Лонгнаме = ИнпутБок („Унесите име запосленог“)

департмент = ИнпутБок („Унесите одељење запосленог“)

лоокуп_вал = наме & “_” & департментОн Грешка ГоТо Мессаге

проверавати:

плата = Апплицатион.ВорксхеетФунцтион.ВЛоокуп (лоокуп_вал, опсег („Б: Ф“), 5, нетачно)

МсгБок („Плата запосленог је“ и плата) Порука:

Ако је Ерр.Нумбер = 1004 Тада

МсгБок („Подаци о запосленима нису присутни“)

Крај ИфЕнд Суб

Ствари које треба запамтити о ВЛоокуп-у у програму Екцел ВБА

  • Функција Влоокуп се може позвати у програму Екцел ВБА помоћу ВорксхеетФунцтион.
  • Синтакса функције влоокуп остаје иста у Екцел ВБА.
  • Када ВБА влоокуп код не може да пронађе лоокуп_валуе, даће грешку 1004.
  • Грешком у функцији влоокуп може се управљати помоћу израза гото ако врати грешку.