Содржина
Додека работиме со Excel VBA кодови, наидуваме на неколку вградени функции кои претвораат сложена задача во мал код од една линија. InStr е таква функција достапна во Excel VBA која бара одредена низа во друга дадена низа почнувајќи од дадена позиција. Денес ќе ви покажам како можете да ја користите функцијата InStr во VBA за да барате одредена низа во друга дадена низа.
Преземете ја работната книга за вежбање
InStr Function.xlsm
Вовед во VBA InStr Function
- Резиме
Пребарува специфичен стринг во дадена низа, почнувајќи од дадена позиција. Ако најде совпаѓање, ја враќа позицијата во дадената низа од каде што започна натпреварот.
- Синтакса
InStr([почеток ], string1, string2,[спореди])
- Аргументи
АРГУМЕНТ | БАРАЊЕ | ОПИС
|
---|---|---|
[почеток] | Изборно | Позицијата од која ќе почне да бара. Стандардно е 1. |
string1 | Задолжително | Низата во која бара дадена низа. |
string2 | Задолжително | Низата што ја бара во дадена низа. |
[спореди] | Изборно | Нумеричка вредност помеѓу {-1,0,1,2} што го одредува типот на споредба. Настандардно е -1 (vbUseCompareOption). Ако изјавата Option Compare не е наведена, направете Бинарна споредба. |
Забелешка:
- Иако Аргументот [почеток] и аргументот [спорирај] се опционални, потребен ви е аргументот [почеток] доколку го наведете аргументот [спорирај] . Во спротивно, ќе предизвика грешка.
- Ако еден или двата од аргументите [почеток] и аргументот [спорирај] се Нулти , ќе се соочите со грешка.
- Четирите наведени вредности во аргументот [спорирај] вршат четири различни типови на споредба. Тие се споменати подолу:
ВРЕДНОСТ | КОНСТАНТНА | ОПИС
|
---|---|---|
-1 | vbUseCompareOption | Ја врши споредбата наведена во исказот Option Compare. |
0 | vbBinaryCompare | Изведува бинарна споредба. |
1 | vbTextCompare | Врши споредба на текст. |
2 | vbDatabaseCompare | Врши споредба врз основа на вашата база на податоци . |
- Опција Споредете изјавата е изјава дадена пред да започне главниот VBA код. Тој одредува дали кодот ќе бара бинарна споредба или споредба на текст кога е потребно.
Опција Споредете текст
-
- Во едноставни термини , бинарна споредба значи чувствителност на големи буквиспоредба.
- Во едноставни термини , Споредба на текст значи споредба без чувствителност на големи букви.
- Повратна вредност
- Ја враќа позицијата во низата1 од која започна низата2 .
- Во случај низата2 да не се најде во рамките на стринг1 почнувајќи од позицијата почеток , враќа 0.
- Ако низата1 е со нулта должина, враќа 0.
- Ако низата2 е со нулта должина, го враќа аргументот start .
- И на крајот, ако некоја од низата1 или string2 е Null , враќа грешка.
3 Лесни примери за користење на функцијата VBA InStr
Во овој дел, ќе видиме три лесни примери за примена на функцијата VBA InStr во Excel. Да го видиме првиот пример на функцијата InStr во VBA кодовите.
1. Одлучување дали адресата е адреса на е-пошта или не со користење на функцијата VBA InStr
Овде, зедовме збир на податоци што содржи некои адреси за контакт на клиентите. Нашата цел овде ќе биде да идентификуваме дали адресите се адреси на е-пошта или не.
Сега ќе развиеме VBA код користејќи ја функцијата InStr за да се идентификуваат дали е е-пошта или не. За да го направите тоа, следете ги чекорите подолу.
Чекори:
- На почетокот, одете во картичката Програмер и изберете Visual Basic (Или притиснете Alt+F11) за да ја отворите VBA прозорец.
- Потоа, на прозорецот VBA , одете до Вметни > Модул .
- Потоа, на модулот, залепете го следниот код:
9159
- Покрај тоа, создадовме функција наречена ОДЛУКА . Таа одлучува дали адресата е адреса на е-пошта или не. Ајде да ја примениме функцијата на множеството податоци што го имаме.
- На ќелијата C5 , запишете ја следнава формула и потоа автоматски пополнете ги останатите ќелии користејќи Рачка за пополнување .
=DECISION(B5)
- Како што можеме да видиме, ние ја идентификувавме секоја адреса дали е адреса на е-пошта или не.
🎓 Како функционира кодот?
- Функција DECISION(string1 As String)
Прво, ова создава функција наречена DECISION со стринг аргумент со име string1 .
- Dim Position as Integer
Таа декларира цела променлива со име Position .
- Позиција = InStr(1, string1, „@“, 0)
Ова ја доделува вредноста на Поставете ја променливата како излез од функцијата InStr со аргументите 1, стринг1, „@“ и 0 . Накратко, ова ја доделува позицијата во адресата каде што има „@“ .
- Ако позиција = 0 Тогаш ОДЛУКА = „Не е-пошта“
Го доделува излезот од функцијата ОДЛУКА како „Не е-пошта“ , ако Позиција променливата е 0 , што значи дека немаше „@“ во адресата.
(Потсети се ако некоја низа не се најде во дадената низа, InStr функцијата враќа 0 ).
- Else DECISION = „Email“
Ова ја доделува излез од функцијата ОДЛУКА како „Е-пошта“ доколку имало „@“ во адресата. Така, адресите каде што има „@“ се категоризираат како Е-пошта , а останатите се категоризираат како „Не е-пошта“ .
Слични читања
- Како да се користи функцијата VBA UCASE во Excel (4 примери)
- Користете ја функцијата MsgBox во Excel VBA (Целосно упатство)
- Како да се користи VBA SPLIT функцијата во Excel (5 примери)
- Користете ја функцијата LCase во VBA во Excel (со 4 Примери)
- Како да се користи функцијата за поправка во Excel VBA (4 примери)
2. . Овој пат ќе ја извлечеме екстензијата на адресата на е-пошта, како на пример дали имаат gmail.com или yahoo.com .
За да го направите тоа, следете ги чекорите подолу.
Чекори:
- За почеток, како и претходниот метод, отворете нов VBA модул и залепете го следниот код во прозорецот.
4828
- Покрај тоа, создадовме функција наречена ПРОДОЛЖУВАЊЕ . Ја вади екстензијата на која било адреса на е-пошта.
- Понатаму, ајде да ја примениме оваа функција на множеството податоци што го имаме. Прво, внесете ја оваа формула во ќелијата C5 и потоа кликнете двапати на Рачка за пополнување .
=EXTENSION(B5)
- На крај, можеме да видиме дека успешно ја извадивме наставката на сите е-пошта.
🎓 Како функционира кодот?
- Функција EXTENSION(Email As String)
Ова создава нова функција наречена EXTENSION , со стринг аргумент со име Е-пошта .
- Затемнета позиција како цел број
Овој дел декларира цела променлива со име Позиција .
- Позиција = InStr(1, Email, „@“, 0)
Ова ја доделува вредноста на Позиција променливата како излез од функцијата InStr со аргументите 1, Email, „@“ и 0 . Накратко, ова ја доделува позицијата во Email каде што има „@“ .
- EXTENSION = Right(Email, (Len (Е-пошта) – Позиција))
Овој дел го доделува излезот од функцијата EXTENSION како знаци по симболот “@” . Ова е потребната екстензија на Е-пошта .
3. Извлекување на името или презимето од име со користење на функцијата VBA InStr
Конечно, ќе извршиме уникатно различна задача. Овој пат ги имаме имињата на некои вработени вокомпанија. И ќе се обидеме да изградиме функција за да го извлечеме името или презимето на вработените.
За да го направите тоа, следете ги чекорите подолу.
0> Чекори:
- Прво, слично на метод 1 , залепете го кодот подолу во нов модул во прозорецот VBA .
9241
- Тука, создадовме функција наречена SHORTNAME која го извлекува името или презимето од името. Ајде да ја примениме оваа формула во нашиот сет на податоци.
- На почетокот, за да го извлечете името, запишете ја формулата подолу во ќелијата C5 .
=SHORTNAME(B5,-1)
- На крај, за да ги извлечеме презимињата, ја запишуваме следнава формула во D5 :
=SHORTNAME(B5,1)
- Потоа, ако ги пополниме останатите ќелии автоматски со Пополнување Handler , ќе го видиме посакуваниот резултат.
🎓 Како функционира кодот?
- Функција SHORTNAME (Име како низа, Прво_или_Последна како цел број)
Создава нова функција наречена SHORTNAME со еден стринг аргумент со име Име и еден целоброен аргумент со име First_or_Last .
- Dim Break As Integer
Овој дел декларира нова целобројна променлива со име Break .
- Break = InStr(1, Name, ” “, 0)
Ја доделува вредноста на променливата Break како излез од функцијата InStr со аргументите 1, Име, „ ” и 0 . Накратко, ова ја доделува позицијата во Име каде што има простор (“ ”).
- Ако First_or_Last = -1 Тогаш SHORTNAME = Лево(Име, прекин – 1)
Оваа линија го доделува излезот од функцијата SHORTNAME како знаци пред просторот , ако аргументот Прв_или_Последен е -1. Ова е првото име.
- SHORTNAME = Right(Name, Len(Name) – Break)
Овој дел го доделува излезот на SHORTNAME функционираат како знаци после просторот , ако аргументот First_or_Last е 1. Ова е презимето.
Заклучок
На овој начин, можете да напишете VBA кодови со функцијата InStr која ја открива позицијата на одредена низа во друга дадена стринг, а потоа можете да креирате свои функции за различни намени. Понатаму, доколку имате какви било прашања, слободно прашајте не.