نص VBA | كيفية استخدام وظيفة النص في VBA Excel؟ (مع أمثلة)

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

وظيفة نص Excel VBA

TEXT هي الوظيفة المتاحة مع ورقة العمل ولكنها للأسف ليست وظيفة مضمنة في Excel VBA. من أجل الوصول إلى هذه الوظيفة ، نحتاج إلى استخدام كائن فئة دالة ورقة العمل في VBA. تقوم دالة النص في Excel بتحويل القيمة إلى تنسيق رقم محدد.

واحدة من المشاكل مع هذه الوظيفة هي الحجج. عندما نستخدم فئة وظيفة ورقة عمل VBA ، لا يمكننا رؤية بناء الجملة الواضح كما هو الحال في ورقة العمل الخاصة بنا. إنها تقول فقط "Arg1" و "Arg2".

  • Arg1 هي القيمة التي نحتاج لتطبيق التنسيق عليها.
  • Arg2 هو التنسيق الذي نحتاج إلى تطبيقه ونحتاج إلى تحديد كود التنسيق.

أمثلة على دالة نص VBA في Excel

فيما يلي أمثلة على دالة نص Excel VBA.

يمكنك تنزيل قالب Excel النصي VBA من هنا - قالب Excel Text VBA

مثال 1

دعني أريكم مثالاً بسيطًا على TEXT في VBA Excel. انظر إلى الكود أدناه في Visual Basic.

رمز:

 Sub Text_Example1 () Dim FormattingValue As String Dim Formatting نتيجة تنسيق StringValue = 0.564 FormattingResult = WorksheetFunction.Text (FormattingValue، "hh: mm: ss AM / PM") MsgBox FormattingResult End Sub 

أولاً ، لقد أعلنت متغيرين كسلسلة في VBA

 تنسيق باهت القيمة كسلسلة تنسيق باهت النتيجة كسلسلة 

بالنسبة للمتغير الأول ، قمت بتعيين رقم التنسيق الذي نحتاج إلى تنسيقه.

قيمة التنسيق = 0.564

الآن بالنسبة لمتغير آخر ، قمت بتعيين وظيفة TEXT.

FormattingResult = WorksheetFunction.Text (FormattingValue، "hh: mm: ss AM / PM")

إذا لاحظت أنني قمت بتطبيق تنسيق الوقت ، مثل "hh: mm: ss AM / PM"

ثم أخيرًا قمت بتطبيق مربع رسالة VBA لإظهار النتيجة.

نتيجة تنسيق MsgBox

عندما أقوم بتشغيل رمز TEXT ، سيتم تطبيق تنسيق الوقت على الرقم 0.564 وعرض النتيجة على النحو التالي.

لذلك ، لدينا الوقت كـ " 01:32:10 مساءً ".

المثال رقم 2

على غرار مثال تنسيق التاريخ ، أجرينا بعض التغييرات الطفيفة في هذا المثال. يوجد أدناه الرمز.

رمز:

 Sub Text_Example2 () Dim FormattingValue As String Dim Formatting النتيجة كتنسيق سلسلة StringValue = 43585 FormattingResult = WorksheetFunction.Text (FormattingValue، "DD-MMM-YYYY") MsgBox FormattingResult End Sub 

من الكود السابق ، قمت بتغيير قيمة التنسيق من 0.565 إلى 43585 وغيرت نمط التنسيق إلى "DD-MMM-YYYY".

سيؤدي هذا إلى تطبيق التنسيق على الرقم 43585 كتاريخ وتكون النتيجة على النحو التالي.

تطبيق التنسيق على الخلايا

لقد رأينا أمثلة بسيطة ، والآن ننظر في كيفية العمل مع الخلايا في ورقة عمل. لهذا المثال ، انظر إلى البيانات أدناه.

لكل هذه الأرقام نحتاج إلى تطبيق تنسيق الوقت. لهذا الرمز أدناه سيتم تطبيق التنسيق.

رمز:

 Sub Text_Example3 () Dim k As Integer For k = 1 To 10 Cells (k، 2) .Value = WorksheetFunction.Text (Cells (k، 1) .Value، "hh: mm: ss AM / PM") Next k End الفرعية 

سيتم تكرار هذا الرمز عبر 10 خلايا وتطبيق التنسيق على النحو التالي.

مثل هذا ، باستخدام وظيفة VBA TEXT ، يمكننا تطبيق تنسيق الأرقام على الخلايا.