VBA InStr - Топ 5 примера за използване на функцията Excel VBA InStr

Съдържание

Функция Excel VBA InStr

Instr във VBA се използва за откриване на позицията на даден подниз в низ, след като зададем метода за сравнение на функцията, има четири различни метода за сравнение за тази функция, Instr е функция на низ, но изходът, върнат от функцията, е числови, така че изходът на тази функция е в цяло число променлива.

String във VBA не е нищо друго освен поредица от знаци, т.е. всички текстове, които са снабдени с двойни кавички, се третират като низове. Функцията InStr е вградена текстова функция, използвана за манипулиране на низове. Например - Ако искате да извлечете подниз от изречение или ако искате да приложите промени в дизайна на шрифта към определен низ в поредица от знаци, или ако искате да намерите позицията на знак и много други възможности, можете да използвайте InStr.

Синтаксис

Той има 4 аргумента, както е показано на изображението по-долу.

  • (Старт): Това не е задължително. Това е числовата стойност, която трябва да посочим от коя позиция на низа функцията Instr започва да търси предоставения текст. Например: ако искате да търсите символа „а“ в думата „Бангалор“ от 3 -та позиция, трябва да кажем на началната позиция на функцията Instr като 3. Така че от 3 -та позиция, символът „а“ е в 5 -та позиция. Ако пренебрегнете този параметър, стойността по подразбиране е 1.
  • Низ 1: Това е действителният низ, който доставяме, т.е. от този текст се опитваме да намерим подниза. Например, ако търсите низа „а“ в „Бангалор“, низ 1 в Бангалор.
  • Низ 2: Това не е нищо друго освен какъв е низът, който търсим. Например, ако търсите низа „a“ в „Бангалор“, String 2 е a .
  • (Сравнение): Това отново е незадължителен аргумент. Има три вида опции, налични в аргумента (сравнение).
  • vbBinaryCompare: Това не е нищо друго освен търсене на регистър на низа (низ 2) в низ 1. Например, ако търсим „а“ в думата „Бангалор“, Instr ще върне 2 като резултат и ако търсят „A“ в думата „Бангалор“, Instr ще върне 0 като резултат, защото предоставеният низ е с главни букви.

Можем също да поставим нула (0) като аргумент.

vbTextCompare: Това не е търсене на регистър на регистъра на низа 2 в низ 1. Например, ако търсим „а“ в думата „Бангалор“, Instr ще върне 2 като резултат и ако търсите „ A “ в думата „ Бангалор “, Instr също ще върне 2. Логиката е A = a, B = b, C = c и т.н. ….

Можем да поставим и един (1) като аргумент.

vbDatabaseCompare: Използва се за сравняване на информацията от вашата база данни, т.е. база данни на Microsoft Access.

Можем да поставим и един (-1) като аргумент.

Топ 5 примери за използване на функцията VBA Instr

Пример # 1

Нека да започнем с първия пример. В думата Бангалор намерете позицията на героя а.

Кодът по-долу ще изпълни задачата вместо нас.

Код:

Sub Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub

Сега изпълнете дадения по-горе код на VBA с помощта на клавиша F5 или можете също да стартирате този код ръчно, както е показано на снимката на екрана по-долу.

Изход:

Пример # 2

Сега в думата Бангалор намерете позицията на героя „а“ от третата позиция.

Кодът по-долу ще изпълни задачата вместо нас.

Код:

Sub Instr_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub

За да стартирате горепосочения код, можете да използвате клавиша F5 или можете също да стартирате този код ръчно, както е показано на дадената по-долу екранна снимка.

Изход:

Сега в горното изображение вижте разликата от предишния код. Тъй като споменахме началната позиция на знака като 3, той игнорира първия символ „а“ на 2- ра позиция.

Пример # 3

Сега ще видим търсене на регистър на буквите. В думата Бангалор намерете буквата „А.“

За това трябва да предоставим аргумента за сравнение като vbBinaryCompare.

Код:

Sub Instr_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub

Сега стартирайте този код, като използвате клавиша F5, или можете също да го стартирате ръчно.

Изход:

Since we have supplied the compare argument as vbBinaryCompare Instr function returned the result as zero because there are no uppercase letter “A” exists.

Example #4

Now we will see one more case sensitive search. In the word Bangalore, find the letter “A.” The previous example returned the result as zero.

In order to overcome the case sensitive approach here, we need to supply the compare argument as vbTextCompare.

Code:

Sub Instr_Example4() Dim i As Variant i = InStr(1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub

Now Run, this code using the F5 Key, or you can also run this code manually.

Output:

Example #5

Now we will see the advanced level of Instr function. If you have many sheets that have a more or less similar name and you want to hide all those sheets at once, we can use the below code to hide a specific sheet.

For example, I have 5 sheets named Summary 1, Summary 2, Summary 3, Summary 4, and Data Sheet.

Now I want to hide all those sheets which have the word “Summary.” Use the below code to hide all the sheets which have the word Summary in its name.

Code:

Sub To_Hide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVeryHidden End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Similarly, in order to unhide all those sheets, use the below code.

Code:

Sub To_UnHide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVisible End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Things to Remember

  • Instr is a case sensitive function. In order to eliminate this case sensitive issue, you need to supply the (compare) argument as.
  • If you are searching for case sensitive character, you need to supply the (compare) argument as, by default, VBA takes this as the argument even if you do not supply.
  • Instr е функция на VBA, така че не можете да я използвате в работен лист на Excel, както други вградени формули.
  • Ако функцията не може да намери String 2, резултатът ще бъде нула.

Интересни статии...