פונקציית VBA MID | כיצד להשתמש בפונקציית MID של Excel VBA?

פונקציית MID של Excel VBA

פונקציית VBA MID מחלצת את הערכים מאמצע המשפט או המילה שסופקו. פונקציית MID מסווגת תחת הפונקציה מחרוזת וטקסט והיא פונקציית גליון עבודה שמשמעותה היא להשתמש בפונקציה זו ב- VBA עלינו להשתמש בשיטת application.worksheet.

ישנם מצבים בהם אנו רוצים לחלץ את השם הפרטי, שם המשפחה או שם האמצעי. במצבים אלה, נוסחאות קטגוריית TEXT מועילות למילוי הדרישות שלנו. השימוש בפונקציה זהה לזה של הפניה לגליון העבודה וגם התחביר זהה.

תחביר

כמו פונקציית ה- MID המצטיינת שלנו, גם ב- VBA יש לה סט דומה של ערכי תחביר. להלן התחביר.

  • מחרוזת לחיפוש: אין זה אלא משפט המשפט של מחרוזת כלומר מאיזה מחרוזת או מילה תרצה לחלץ את הערכים.
  • עמדת התחלה: מאיזה מיקום המשפט אתה רוצה לחלץ. זה צריך להיות ערך מספרי.
  • מספר הדמויות לחילוץ : ממיקום ההתחלה כמה תווים אתה רוצה לחלץ? זה גם צריך להיות ערך מספרי.

כיצד להשתמש בפונקציית MID VBA?

ניתן להוריד תבנית פונקציות VBA MID זו כאן - תבנית פונקציות VBA MID

דוגמה מס '1

נניח שיש לך את המילה "שלום בוקר טוב" ואתה רוצה לחלץ את "טוב" ממשפט זה. בצע את השלבים הבאים כדי לחלץ את הערך.

שלב 1: צור תחילה שם מאקרו.

קוד:

 משנה MID_VBA_Example1 () משנה משנה 

שלב 2: הכריז על משתנה כ- "STRING".

קוד:

 משנה MID_VBA_Example1 () עמעום MiddleValue כתחתית מחרוזת 

שלב 3: כעת הקצה ערך למשתנה זה באמצעות פונקציית MID.

קוד:

 משנה MID_VBA_Example1 () עמעום MiddleValue כמחרוזת MiddleValue = Mid (סוף משנה 

שלב 4: טיעון ראשון הוא String כלומר מאיזה ערך אנו רוצים לחלץ. אז הערך שלנו הוא "שלום טוב בוקר טוב".

קוד:

 תת MID_VBA_Example1 () עמעום MiddleValue כמחרוזת MiddleValue = Mid ("שלום בוקר טוב", סוף משנה 

שלב 5: הבא הוא מהי עמדת ההתחלה של הדמות שברצונך לחלץ. במקרה זה, בוקר טוב מתחיל מדמות 7.

הערה: החלל הוא גם דמות.

קוד:

 תת MID_VBA_Example1 () עמעום MiddleValue כמחרוזת MiddleValue = Mid ("שלום טוב בוקר", 7 סוף משנה 

שלב 6: אורך אינו אלא כמה תווים שאתה רוצה לחלץ. עלינו לחלץ כאן 4 תווים מכיוון שאורך המילה "טוב" הוא 4 תווים.

קוד:

 משנה MID_VBA_Example1 () עמעום MiddleValue כמחרוזת MiddleValue = Mid ("שלום טוב בוקר", 7, 4) סוף סוף 

שלב 7: השלמנו את הנוסחה. בואו נראה את תוצאת המשתנה בתיבת ההודעה.

קוד:

 משנה MID_VBA_Example1 () עמעום MiddleValue כמחרוזת MiddleValue = Mid ("שלום טוב בוקר", 7, 4) MsgBox MiddleValue סוף משנה 

שלב 8: כעת הפעל את הקוד הזה באופן ידני או לחץ על מקש F5, תיבת ההודעות אמורה להציג את המילה "טוב".

תְפוּקָה:

דוגמה מס '2

נניח שיש לך שם פרטי ושם משפחה יחד והמילה היא "רמש, טנדולקר". בין שם פרטי ושם משפחה, תו הפרדה הוא פסיק (,). כעת עלינו לחלץ את השם הפרטי בלבד.

שלב 1: צור מאקרו והגדר משתנה.

קוד:

 תת MID_VBA_Example2 () עמעום שם פרטי כמשנה סוף מחרוזת 

שלב 2: כעת הקצה ערך למשתנה זה באמצעות פונקציית MID.

קוד:

 משנה MID_VBA_Example2 () עמעום שם פרטי כמחרוזת שם ראשון = אמצע (סוף משנה 

שלב 3: המחרוזת שלנו היא "Ramesh.Tendulkar", אז הזן את המילה הזו.

קוד:

 משנה MID_VBA_Example2 () עמעום שם פרטי כמחרוזת שם ראשון = אמצע ("רמש, טנדולקר", סוף משנה 

שלב 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.