ВБА ИнСтрРев - Како се користи функција Екцел ВБА ИнСтрРев?

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

Екцел ВБА ИНСТРРЕВ

ВБА ИНСТРРЕВ функција, као скраћеница од „Ин Стринг Реверсе“ , враћа положај првог појављивања низа за претрагу (подниз) у другом низу, почевши од краја низа (здесна налево) од којег тражимо претраживи низ.

Функција ИНСТРРЕВ започиње претрагу низа који се може претраживати с краја низа у којем треба да сазнамо, али рачуна позицију од почетка. Постоји још једна ИНСТР ВБА функција (скраћеница од „У низу“ ) која такође тражи низ у другом низу и враћа позицију, али ова функција започиње претрагу од почетка низа из којег тражимо низ који се може претраживати.

ИНСТРРЕВ и ИНСТР , обје су уграђене функције Стринг / Тект ВБА у програму МС Екцел. Можемо их користити док пишемо било који макро у програму Мицрософт Висуал Басиц Едитор.

Синтакса

Као што видимо на горњој слици, постоје 2 обавезна и 2 необавезна аргумента.

  • СтрингЦхецк Ас Стринг: Ово је потребан аргумент. Морамо дати израз израза који се претражује.
  • СтрингМатцх Ас Стринг: Овај аргумент је такође потребан. Морамо навести израз низа који се тражи.
  • Започни дуго = -1: Ово је опционални аргумент. Одређујемо нумерички израз. Подразумевано је потребно -1, што значи да претрага започиње на последњем месту знака. Ако наведемо било коју позитивну вредност, попут 80, тада започиње претрагу са краја низа у тих 80 знакова лево.
  • Упореди као ВбЦомпареМетход = вбБинариЦомпаре Ас Лонг: Овај аргумент није обавезан.

За овај аргумент можемо одредити следеће вредности.

Повратне вредности

  1. Функција ИНСТРРЕВ враћа 0 ако је провјера низа нулте дужине или ако подударање низа није пронађено или аргумент 'старт' > дужина подударања низа .
  2. Ова функција враћа 'Нула' ако чек низ или низ утакмица је "Нула".
  3. Ако је подударање низа нулте дужине, тада се функција враћа на почетак .
  4. Ако се подударање низа пронађе у оквиру провјере низа , тада функција враћа положај на којем је пронађено подударање.

Како се користи функција ВБА ИНСТРРЕВ?

Претпоставимо да имамо податке о именима филмова и њиховим редитељима. Желимо да раздвојимо имена редитеља.

Податке имамо у 1201 реду. Ако овај задатак обавимо ручно, одузеће вам много времена.

Да бисмо учинили исто, користићемо ВБА код. Кораци су:

  • Морамо да кликнемо на команду „Висуал Басиц“ која је доступна у групи „Цоде“ на картици „Девелопер“ или можемо притиснути Алт + Ф11 да отворимо едитор за Висуал Басиц.
  • Убацићемо модул помоћу менија „Убаци“ .
  • Направићемо потпрограм под називом „СплиттингНамес“.
  • Потребно нам је 6 променљивих - једна за чување вредности ћелија, којима ћемо манипулисати. Друго за чување положаја првог размака у низу, треће за чување положаја последњег размака у низу, четврто за чување последњег броја реда, пето и шесто за ред и колону, које ћемо користити за испис вредности у суседном ћелије.
  • Да бисмо сазнали последњи коришћени ред у листу, треба да користимо следећи код.

Овај код ће прво одабрати ћелију Б1, а затим изабрати последњу кориштену ћелију у истој колони, а затим променљивој „ЛастРов“ додељујемо број реда ћелије.

  • Сада ћемо манипулисати свим ћелијама у колони Б, покренућемо петљу 'фор' .
  • Вредност ћелија Б колоне чуваћемо једну по једну у променљивој 'с' да бисмо њима манипулисали.
  • Морамо подесити вредност променљиве „Колона“ на 3, јер треба да напишемо имена поделе у Ц ( 3. колона) и колону даље.
  • Ако је низ само једна реч, што значи да у низу нема простора, тада желимо сам низ као излаз. За ово ћемо одредити услов користећи „Иф анд Елсе статемент“ са звездицом (означавајући један или више знакова) на следећи начин:
  • Ако у низу има простора, онда желимо да раздвојимо низ. Да бисмо учинили исто, користили смо функцију ИНСТР и ИНСТРРЕВ како бисмо пронашли прву позицију размака, односно позицију размака. Помоћи ће нам да пронађемо прву и последњу реч у низу.

Функција ИНСТР узима аргумент као испод:

Детаљи аргумента

  • Старт: Са које позиције кренути.
  • Стринг1: Морамо дати израз израза који се претражује.
  • Стринг2: Морамо навести израз низа који се тражи.

У поређењу са ВбЦомпареМетход: Одређивање методе упоређивања. Подразумевано је бинарно упоређивање.

  • Морамо да користимо ВБА ЛЕВИ функцију за издвајање леве ликове из низа. Користили смо „Последњи размак-1“ да бисмо добили леве знакове пре последњег размака.

Морамо користити функције ДЕСНО и ЛЕН да бисмо извукли праве знакове из низа након првог размака.

Макро је написан. Сада само треба да покренемо макро помоћу тастера Ф5 .

Шифра:

Суб СплиттингНамес () Дим с Ас Стринг Дим ФирстСпаце Ас Лонг Дим ЛастСПаце Ас Лонг Дим ЛастРов Ас Лонг Дим Ред Ас Лонг Дим Цолумн Ас Лонг Схеет1.Ранге ("Б1"). Селецт Селецтион.Енд (клДовн) .Селецт ЛастРов = АцтивеЦелл. Ред за ред = 2 до ЛастРов с = Схеет1.Целлс (Ров, 2) .Валуе Цолумн = 3 Иф с Лике "* *" тхен ФирстСпаце = ИнСтр (1, с, "") ЛастСПаце = ИнСтрРев (с, "") Схеет1.Целлс (Ред, Цолумн) .Валуе = Лефт (с, ЛастСПаце - 1) Схеет1.Целлс (Ров, Цолумн + 1) .Валуе = Ригхт (с, Лен (с) - ФирстСпаце) Елсе Схеет1.Целлс (Ров, Колона) .Валуе = с Енд Иф Нект Енд Суб

Сад имамо резултат.

Занимљиви Чланци...