Функция VBA MID | Как использовать функцию Excel VBA MID?

Функция Excel VBA MID

Функция VBA MID извлекает значения из середины предложенного предложения или слова. Функция MID относится к функциям String и Text, и это функция рабочего листа, что означает, что для использования этой функции в VBA нам необходимо использовать метод application.worksheet.

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

Синтаксис

Как и наша функция excel MID, в VBA она имеет аналогичный набор значений синтаксиса. Ниже приведен синтаксис.

  • Строка для поиска: это не что иное, как предложение строки, то есть из какой строки или слова вы хотите извлечь значения.
  • Начальная позиция: из какой позиции предложения вы хотите извлечь. Это должно быть числовое значение.
  • Количество символов для извлечения: из начальной позиции, сколько символов вы хотите извлечь? Это также должно быть числовое значение.

Как использовать функцию VBA MID?

Вы можете скачать этот шаблон функции VBA MID здесь - Шаблон функции VBA MID

Пример # 1

Предположим, у вас есть слово «Привет, доброе утро», и вы хотите извлечь из этого предложения «Хорошо». Выполните следующие шаги, чтобы извлечь значение.

Шаг 1. Сначала создайте имя макроса.

Код:

 Sub MID_VBA_Example1 () End Sub 

Шаг 2: Объявите переменную как «STRING».

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String End Sub 

Шаг 3: Теперь присвойте значение этой переменной с помощью функции MID.

Код:

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

Шаг 4: Первый аргумент - String, то есть значение, из которого мы хотим извлечь. Итак, наша ценность - «Здравствуйте, доброе утро».

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid («Привет, доброе утро», End Sub 

Шаг 5: Далее следует начальная позиция символа, который вы хотите извлечь. В этом случае Доброе утро начинается с 7-го символа.

Примечание: пробел также является символом.

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid («Привет, доброе утро», 7 End Sub 

Шаг 6: Длина - это не что иное, как количество символов, которые вы хотите извлечь. Здесь нам нужно извлечь 4 символа, поскольку длина слова «Good» составляет 4 символа.

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid («Привет, доброе утро», 7, 4) End Sub 

Шаг 7: Мы завершили формулу. Покажем результат переменной в окне сообщения.

Код:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid («Привет, доброе утро», 7, 4) MsgBox MiddleValue End Sub 

Шаг 8: Теперь запустите этот код вручную или нажмите клавишу F5, в окне сообщения должно появиться слово «Хорошо».

Выход:

Пример # 2

Assume you have a first name and last name together and the word is “Ramesh, Tendulkar”. Between First Name & Last Name, separation character is a comma (,). Now we need to extract the first name only.

Step 1: Create a macro and define a variable.

Code:

 Sub MID_VBA_Example2()     Dim FirstName As String End Sub 

Step 2: Now assign a value to this variable through MID function.

Code:

 Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid( End Sub 

Step 3: Our string is “Ramesh.Tendulkar”, so enter this word.

Code:

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

Step 4: Since we are extracting the first name starting position is 1.

Code:

 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.