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

وظيفة Excel VBA IsDate

IsDate هي دالة VBA التي تختبر ما إذا كانت القيمة المحددة هي التاريخ أم لا. إذا كانت القيمة التي تم توفيرها أو القيمة المرجعية للنطاق هي قيمة التاريخ ، فسنحصل على النتيجة كـ "TRUE" ، وإذا لم تكن القيمة هي قيمة التاريخ ، فسنحصل على النتيجة على أنها "FALSE" لذا ، فإن النتيجة هي قيمة BOOLEAN ، أي إما TRUE أو FALSE.

يوجد أدناه بناء جملة الدالة IsDate.

التعبير ليس سوى القيمة التي نحاول اختبارها سواء كان التاريخ أم لا.

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

يمكنك تنزيل نموذج VBA IsDate Excel هذا هنا - قالب VBA IsDate Excel

سنختبر ما إذا كانت القيمة "5.01.19" قيمة تاريخ أم لا.

لهذا ، ابدأ أولاً إجراء ماكرو excel.

رمز:

 IsDate_Example1 الفرعي () End Sub 

حدد المتغير لتخزين قيمة التاريخ وبما أن القيمة ستكون قيمة تاريخ ، قم بتعيين نوع البيانات كـ "تاريخ" فقط.

رمز:

 Sub IsDate_Example1 () خافت MyDate كتاريخ انتهاء فرعي 

الآن قم بتعيين قيمة "5.1.19" إلى المتغير "MyDate".

رمز:

 Sub IsDate_Example1 () خافت MyDate كتاريخ MyDate = "5.1.19" End Sub 

افتح مربع الرسالة في VBA الآن

رمز:

 Sub IsDate_Example1 () خافت MyDate كتاريخ MyDate = "5.1.19" MsgBox (End Sub 

في مربع الرسالة هذا ، سنختبر ما إذا كانت قيمة التاريخ المقدمة للمتغير "MyDate" هي التاريخ أم لا باستخدام وظيفة "IsDate". أولاً ، افتح وظيفة "IsDate".

رمز:

 Sub IsDate_Example1 () خافت MyDate كتاريخ MyDate = "5.1.19" MsgBox IsDate (End Sub 

التعبير هو القيمة التي نختبرها لمعرفة ما إذا كان التاريخ أم لا. نظرًا لأننا قمنا بالفعل بتخزين القيمة في المتغير "MyDate" ، فقم بتوفير اسم المتغير فقط.

رمز:

 Sub IsDate_Example1 () خافت MyDate كتاريخ MyDate = "5.1.19" MsgBox IsDate (MyDate) End Sub 

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

رائع!!! النتيجة هي TRUE .

يجب أن تتساءل كيف تعرفت على القيمة "5.1.19" كتاريخ.

سبب إرجاع النتيجة على أنها TRUE لأنه عندما تنظر إلى القيمة المحددة "5.1.19" ، فهي الشكل المختصر للتاريخ "05.01.2019" لذا فإن Excel رائع بما يكفي للتعرف عليه كتاريخ ، وبالتالي فإن النتيجة صحيح.

الآن هنا يأتي الشيء الصعب ، لنفس القيمة ما سنفعله هو أننا سنغير الشكل القصير للسنة من 19 إلى 2019.

رمز:

 Sub IsDate_Example1 () Dim MyDate كسلسلة MyDate = "5.1.2019" MsgBox IsDate (MyDate) End Sub 

الآن قم بتشغيل الكود وانظر النتيجة.

هذه المرة أعادت النتيجة على أنها FALSE لأن جزء "اليوم والشهر" من التاريخ في شكل قصير ولكن جزء السنة في شكل كامل من "YYYY" لذلك لا يمكن لـ ISDATE التعرف على تاريخها ، وبالتالي فإن النتيجة غير صحيحة.

الآن ، انظر إلى الكود أدناه.

رمز:

 Sub IsDate_Example1 () Dim MyDate كسلسلة MyDate = "05.01.2019" MsgBox IsDate (MyDate) End Sub 

لقد ذكرت تنسيق يوم كامل وشهر كامل باستخدام 0 ، فلنقم بتشغيل الكود ونرى نتيجة وظيفة IsDate.

هذه المرة أيضًا حصلنا على النتيجة على أنها خطأ .

الآن قم بتغيير الرمز على النحو التالي.

رمز:

 Sub IsDate_Example1 () Dim MyDate كسلسلة MyDate = "05/01/2019" MsgBox IsDate (MyDate) End Sub 

بدلاً من النقطة (.) كفاصل ، أدخلنا الشرطة المائلة للأمام (/) كفاصل. الآن قم بتشغيل الكود وانظر النتيجة.

هذه المرة حصلنا على النتيجة على أنها TRUE .

هذا هو سبب إخباري لك في بداية المقال أن "التاريخ" أمر حساس.

الآن ما سأفعله هو دمج التاريخ والوقت معًا.

رمز:

 Sub IsDate_Example1 () Dim MyDate كسلسلة MyDate = "05/01/2019 15:26:24" MsgBox IsDate (MyDate) End Sub 

ما أضفته أعلاه هو جزء الوقت من "15:26:24" قبل التاريخ. الآن قم بتشغيل الكود وانظر النتيجة.

هذه المرة أيضا حصلنا على النتيجة كما TRUE لأن التاريخ & TIME في التفوق هي نفس الأشياء وتخزينها كأرقام تسلسلية. يمثل العدد الصحيح جزء التاريخ وتمثل المنازل العشرية جزء الوقت.

أشياء يجب تذكرها هنا

  • تقوم IsDate بإرجاع نتيجة النوع المنطقي ، أي إما TRUE أو FALSE.
  • IsDate متاح فقط كدالة VBA.
  • يتم التعامل مع التواريخ المنسقة الصالحة فقط كتاريخ وإلا سيتم التعامل معها كقيم نصية وإرجاع النتيجة على أنها FALSE.

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