MID-функція VBA | Як використовувати функцію Excel VBA MID?

MID-функція Excel VBA

Функція VBA MID витягує значення із середини поданого речення або слова. Функція MID класифікується за функцією "Рядок і текст", і це функція робочого аркуша, що означає, що для використання цієї функції у VBA нам потрібно використовувати метод application.worksheet.

Бувають ситуації, коли ми хочемо витягти ім’я, прізвище чи по батькові. У таких ситуаціях формули категорії ТЕКСТ корисні для виконання наших вимог. Використання цієї функції є таким же, як у посилання на аркуш, і синтаксис також однаковий.

Синтаксис

Як і наша функція excel MID, у VBA вона також має подібний набір значень синтаксису. Нижче наведено синтаксис.

  • Рядок для пошуку: це не що інше, як це речення рядка, тобто з якого рядка чи слова ви хочете витягти значення.
  • Початкова позиція: з якої позиції речення ви хочете витягти. Це має бути числове значення.
  • Кількість символів для виділення: скільки символів ви хочете виділити з початкової позиції? Це також має бути числовим значенням.

Як користуватися функцією VBA MID?

Ви можете завантажити цей шаблон функції VBA MID тут - шаблон функції MID VBA

Приклад №1

Припустимо, у вас є слово «Привіт, доброго ранку», і ви хочете витягти з цього речення «Добрий». Для отримання значення виконайте наведені нижче дії.

Крок 1: Спершу створіть ім’я макросу.

Код:

 Sub MID_VBA_Example1 () Кінець Sub 

Крок 2: Оголосіть змінну як “STRING”.

Код:

 Sub MID_VBA_Example1 () Вимкнути MiddleValue як рядок End Sub 

Крок 3: Тепер призначте значення цій змінній за допомогою функції MID.

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid (End Sub) 

Крок 4: Перший аргумент - це рядок, тобто з якого значення ми хочемо витягти. Тож наше значення - «Привіт, доброго ранку».

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", End Sub 

Крок 5: Далі йде вихідна позиція персонажа, якого ви хочете виділити. У цьому випадку Добрий ранок починається з 7-го символу.

Примітка: Космос - це також персонаж.

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7 End Sub 

Крок 6: Довжина - це не що інше, як кількість символів, які ви хочете витягти. Нам потрібно витягти тут 4 символи, оскільки довжина слова “Добре” становить 4 символи.

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) End Sub 

Крок 7: Ми заповнили формулу. Покажемо результат змінної у вікні повідомлення.

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) MsgBox MiddleValue End Sub 

Крок 8: Тепер запустіть цей код вручну або натисніть клавішу F5, у вікні повідомлення повинно відображатися слово «Добре».

Вихід:

Приклад №2

Припустимо, у вас є ім’я та прізвище разом, і це слово “Рамеш, Тендулкар”. Між Іменем та Прізвищем символ розділення - кома (,). Тепер нам потрібно витягти лише першу назву.

Крок 1: Створіть макрос та визначте змінну.

Код:

 Sub MID_VBA_Example2 () Затемнити ім'я як рядок Кінець Sub 

Крок 2: Тепер призначте значення цій змінній за допомогою функції MID.

Код:

 Sub MID_VBA_Example2 () Вимкнути ім'я як рядок FirstName = Mid (End Sub 

Крок 3: Наш рядок - "Рамеш.Тендулкар", тому введіть це слово.

Код:

 Sub MID_VBA_Example2 () Вимкнути ім'я як рядок FirstName = Mid ("Ramesh, Tendulkar", End Sub 

Крок 4: Оскільки ми витягуємо ім’я, початкова позиція - 1.

Код:

 Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1, End Sub 

Step 5: Length of the character you can directly enter as 6 but this is not the best way. In order to determine the length lets apply one more formula called Instr.

Code:

 Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr( End Sub 

Step 6: For this starting position is 1.

Code:

 Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1, End Sub 

Step 7: String 1 is our name i.e. “Ramesh, Tendulkar”.

Code:

 Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1,"Ramesh,Tendulkar", End Sub 

Step 8: String 2 what is the separator of first name & last name i.e. comma (,).

Code:

 Sub MID_VBA_Example2()     Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1,"Ramesh,Tendulkar",",") End Sub 

Note: Instr function will return how many characters are there in the word “Ramesh, Tendulkar” from the string 1 position to the string 2 positions i.e. until comma (,). So Instr will return 7 as the result including comma (,).

Step 9: Since Instr function returns no., of characters including comma (,) we need to minus 1 character here. So enter -1 after the close of Instr function.

Code:

 Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", 1, InStr(1, "Ramesh,Tendulkar", ",") - 1) End Sub 

Step 10: Now show the value of the variable in the message box.

Code:

 Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", 1, InStr(1, "Ramesh,Tendulkar", ",") - 1) MsgBox FirstName End Sub 

Step 11: Run this code using F5 key or you can run this code manually, we would get the first name in the message box.

Output:

Example #3

Now I will give you one assignment to solve. I have a list of First Name & Last Name.

From this list I want you to extract the first name only. All the best!!!!.

Ok, If you have tried and not able to get the result then below code would help you in this.

Code:

 Sub MID_VBA_Example3()     Dim   i   As Long For i = 2   To  15 Cells(i, 2).Value = Mid(Cells(i, 1).Value, 1, InStr(1, Cells(i, 1).Value, ",") - 1)     Next i End Sub 

Copy & Paste the above code in your module. After copying the code, run this code using the F5 key or you can run manually.

It should give the result like the below.

Things to Remember

  • Length argument in MID function is optional. If you ignore this it will take 1 as the default value.
  • In order to determine the length or starting position use Instr function along with MID function.