وظيفة VBA MID | كيفية استخدام وظيفة Excel VBA MID؟

وظيفة Excel VBA MID

تستخرج الدالة VBA MID القيم من منتصف الجملة أو الكلمة المتوفرة. يتم تصنيف وظيفة MID ضمن وظيفة String and Text وهي وظيفة ورقة عمل مما يعني استخدام هذه الوظيفة في VBA نحتاج إلى استخدام طريقة application.worksheet.

هناك حالات نريد فيها استخراج الاسم الأول أو اسم العائلة أو الاسم الأوسط. في هذه الحالات ، تكون صيغ فئة TEXT مفيدة في تلبية متطلباتنا. استخدام هذه الوظيفة هو نفس استخدام مرجع ورقة العمل ، كما أن بناء الجملة هو نفسه.

بناء الجملة

مثل وظيفة excel MID الخاصة بنا ، تحتوي VBA أيضًا على مجموعة مماثلة من قيم بناء الجملة. يوجد أدناه بناء الجملة.

  • String to Search: هذا ليس سوى ما هي جملة السلسلة ، أي السلسلة أو الكلمة التي ترغب في استخراج القيم منها.
  • موقف البداية: من أي موضع للجملة تريد استخلاصه. يجب أن تكون هذه قيمة عددية.
  • عدد الأحرف المراد استخلاصها : من موضع البداية ، كم عدد الأحرف التي تريد استخراجها؟ يجب أن تكون هذه أيضًا قيمة عددية.

كيفية استخدام وظيفة VBA MID؟

يمكنك تنزيل قالب وظيفة VBA MID هذا هنا - قالب وظيفة VBA MID

مثال 1

افترض أن لديك كلمة "Hello Good Morning" وتريد استخراج كلمة "Good" من هذه الجملة. اتبع الخطوات أدناه لاستخراج القيمة.

الخطوة 1: قم بإنشاء اسم ماكرو أولاً.

رمز:

 MID_VBA_Example1 الفرعي () End Sub 

الخطوة 2: قم بتعريف المتغير على أنه "STRING".

رمز:

 MID_VBA_Example1 الفرعي () قيمة متوسطة باهتة مثل سلسلة نهاية فرعية 

الخطوة 3: الآن قم بتعيين قيمة لهذا المتغير من خلال وظيفة MID.

رمز:

 MID_VBA_Example1 فرعي () قيمة متوسطة خافتة كسلسلة 

الخطوة 4: الوسيطة الأولى هي String أي القيمة التي نريد استخراجها. لذا فإن قيمتنا هي "Hello Good Morning".

رمز:

 MID_VBA_Example1 فرعي () القيمة المتوسطة الخافتة كسلسلة MiddleValue = منتصف ("Hello Good Morning" ، End Sub 

الخطوة 5: التالي هو موضع البداية للشخصية التي تريد استخراجها. في هذه الحالة ، يبدأ صباح الخير من الشخصية السابعة.

ملاحظة: الفضاء هو أيضا شخصية.

رمز:

 Sub MID_VBA_Example1 () قيمة متوسطة خافتة كسلسلة MiddleValue = منتصف ("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: لقد أكملنا الصيغة. دعنا نظهر نتيجة المتغير في مربع الرسالة.

رمز:

 MID_VBA_Example1 () خافت للقيمة المتوسطة كسلسلة MiddleValue = منتصف ("Hello Good Morning"، 7، 4) MsgBox MiddleValue End Sub 

الخطوة 8: الآن قم بتشغيل هذا الرمز يدويًا أو اضغط على المفتاح F5 ، يجب أن يعرض مربع الرسالة كلمة "جيد".

انتاج:

المثال رقم 2

افترض أن لديك اسمًا أول واسمًا أخيرًا معًا وأن الكلمة هي "راميش ، تيندولكار". بين الاسم الأول واسم العائلة ، يكون حرف الفصل عبارة عن فاصلة (،). الآن نحن بحاجة إلى استخراج الاسم الأول فقط.

الخطوة 1: إنشاء ماكرو وتحديد متغير.

رمز:

 MID_VBA_Example2 الفرعي () خافت الاسم الأول على أنه سلسلة نهاية فرعية 

الخطوة 2: الآن قم بتعيين قيمة لهذا المتغير من خلال وظيفة MID.

رمز:

 MID_VBA_Example2 الفرعي () خافت الاسم الأول كسلسلة الاسم الأول = منتصف (End Sub 

الخطوة 3: السلسلة هي "Ramesh.Tendulkar" ، لذا أدخل هذه الكلمة.

رمز:

 MID_VBA_Example2 () خافت الاسم الأول كسلسلة الاسم الأول = منتصف ("راميش ، تيندولكار" ، End Sub 

الخطوة 4: نظرًا لأننا نستخرج الاسم الأول ، فإن موضع البداية هو 1.

رمز:

 MID_VBA_Example2 () خافت الاسم الأول كسلسلة الاسم الأول = منتصف ("راميش ، تيندولكار" ، 1 ، End Sub 

الخطوة 5: يمكنك إدخال طول الحرف مباشرة كـ 6 ولكن هذه ليست أفضل طريقة. من أجل تحديد الطول ، دعونا نطبق صيغة أخرى تسمى Instr.

رمز:

 MID_VBA_Example2 () خافت الاسم الأول كسلسلة الاسم الأول = منتصف ("راميش ، تيندولكار" ، 1 ، InStr (End Sub 

الخطوة 6: بالنسبة إلى وضع البداية هذا هو 1.

رمز:

 MID_VBA_Example2 () خافت الاسم الأول كسلسلة الاسم الأول = منتصف ("راميش ، تيندولكار" ، 1 ، InStr (1 ، End Sub 

الخطوة 7: String 1 هو اسمنا ، أي "راميش ، تيندولكار".

رمز:

 MID_VBA_Example2 () خافت الاسم الأول كسلسلة الاسم الأول = Mid ("Ramesh، Tendulkar"، 1، InStr (1، "Ramesh، Tendulkar"، End Sub 

الخطوة 8: السلسلة 2 ما هو فاصل الاسم الأول واسم العائلة ، أي فاصلة (،).

رمز:

 MID_VBA_Example2 () خافت الاسم الأول كسلسلة الاسم الأول = منتصف ("راميش ، تيندولكار" ، 1 ، InStr (1 ، "راميش ، تيندولكار" ، "،") End Sub 

ملاحظة: ستعيد وظيفة Instr عدد الأحرف الموجودة في كلمة "Ramesh ، Tendulkar" من موضع السلسلة 1 إلى موضع السلسلة 2 ، أي حتى الفاصلة (،). لذلك سيعيد Instr 7 كنتيجة بما في ذلك الفاصلة (،).

الخطوة 9: نظرًا لأن دالة Instr ترجع عددًا من الأحرف بما في ذلك الفاصلة (،) نحتاج إلى طرح حرف واحد هنا. لذا أدخل -1 بعد إغلاق وظيفة Instr.

رمز:

 MID_VBA_Example2 () خافت الاسم الأول كسلسلة الاسم الأول = Mid ("Ramesh، Tendulkar"، 1، InStr (1، "Ramesh، Tendulkar"، "،") - 1) End Sub 

الخطوة 10: الآن اعرض قيمة المتغير في مربع الرسالة.

رمز:

 MID_VBA_Example2 () خافت الاسم الأول كسلسلة الاسم الأول = Mid ("Ramesh، Tendulkar"، 1، InStr (1، "Ramesh، Tendulkar"، "،") - 1) MsgBox FirstName End Sub 

الخطوة 11: قم بتشغيل هذا الرمز باستخدام مفتاح F5 أو يمكنك تشغيل هذا الرمز يدويًا ، فسنحصل على الاسم الأول في مربع الرسالة.

انتاج:

المثال رقم 3

الآن سأقدم لك مهمة واحدة لحلها. لدي قائمة بالاسم الأول واسم العائلة.

من هذه القائمة أريدك أن تستخرج الاسم الأول فقط. أتمنى لك كل خير!!!!.

حسنًا ، إذا حاولت ولم تتمكن من الحصول على النتيجة ، فستساعدك الكود أدناه في ذلك.

رمز:

 MID_VBA_Example3 () خافت طوي ل i = 2 إلى 15 خلية (i، 2) .Value = Mid (Cells (i، 1) .Value، 1، InStr (1، Cells (i، 1) .Value، " ، ") - 1) التالي أنا End Sub 

انسخ والصق الكود أعلاه في الوحدة الخاصة بك. بعد نسخ الرمز ، قم بتشغيل هذا الرمز باستخدام المفتاح F5 أو يمكنك تشغيله يدويًا.

يجب أن تعطي النتيجة مثل ما يلي.

أشياء للذكرى

  • وسيطة الطول في دالة MID اختيارية. إذا تجاهلت هذا ، فسيأخذ 1 كقيمة افتراضية.
  • من أجل تحديد الطول أو موضع البداية ، استخدم دالة Instr مع وظيفة MID.

$config[zx-auto] not found$config[zx-overlay] not found