VBA Long (مثال) | دليل خطوة بخطوة إلى نوع البيانات الطويلة في Excel VBA

ما هو نوع البيانات الطويلة في VBA؟

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

"طويل" كما يقول الاسم ، يجب أن يحمل قيمة لشيء كبير. "طويل" هو نوع بيانات رقمي في VBA Excel.

يمكن لنوع البيانات الطويل في Excel VBA الاحتفاظ بالقيم من 0 إلى 2 ، 147 ، 483 ، 647 للأرقام الموجبة ، وبالنسبة للرقم السالب ، يمكنه الاحتفاظ من 0 إلى -2 ، 147 ، 483 ، 648.

يتطلب نوع بيانات VBA Long 4 بايت من ذاكرة تخزين جهاز الكمبيوتر الخاص بك ، وهذا هو الذاكرة المتغيرة لنوع بيانات عدد صحيح مزدوج (2 بايت) ونصف الذاكرة المتغيرة لنوع البيانات المزدوجة (8 بايت)

لم أر مطلقًا سيناريو حيث أرغب في الاستفادة الكاملة من حد نوع بيانات VBA Long في مسيرتي المهنية القصيرة. لكن سأعرض لكم بعض الأمثلة لفهمها بشكل أفضل.

أمثلة على نوع بيانات VBA Long

فيما يلي أمثلة لنوع بيانات Excel VBA Long.

يمكنك تنزيل نموذج Excel لنوع البيانات الطويلة من VBA هنا - نموذج Excel لنوع البيانات الطويلة لـ VBA

مثال طويل لـ VBA # 1

بمجرد أن تقوم بتعريف نوع البيانات المتغير على أنه "طويل" ، يمكنك تعيين القيم من -2 ، 147 ، 483 ، 648 إلى 2 ، 147 ، 483 ، 648.

على سبيل المثال ، قم بتعريف المتغير كنوع بيانات طويل.

رمز:

 Sub Long_Example1 () Dim k As Long End Sub 

لنقم بتعيين القيمة كعدد إجمالي للصفوف في ورقة العمل.

للحصول على إجمالي عدد الصفوف في كود ورقة عمل Excel هو “Rows. عدد"

رمز:

 Sub Long_Example1 () Dim k As Long k = Rows.Count End Sub 

اعرض الآن القيمة في مربع الرسالة.

رمز:

 Sub Long_Example1 () Dim k As Long k = Rows.Count MsgBox k End Sub 

قم بتشغيل هذا الرمز ومعرفة عدد الصفوف الإجمالية في ورقة العمل.

تقول أن لدينا أكثر من مليون صف في ورقة العمل.

الآن من أجل فهم أفضل ، سأغير نوع البيانات من طويل إلى صحيح.

رمز:

 Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub 

إذا قمت بتشغيل رمز VBA ، فسوف أتلقى رسالة الخطأ على أنها "تجاوز".

سبب حصولنا على هذا الخطأ في VBA لأن نوع البيانات "عدد صحيح" يمكنه الاحتفاظ بالقيم من -31768 إلى 32767 فقط. في هذه الحالة “Rows. سيعيد Count "الرقم الذي يزيد عن حد المتغير" الصحيح ".

يؤدي تعيين قيمة تزيد عن 1 مليون إلى المتغير الذي يمكنه استيعاب 32767 فقط إلى حدوث خطأ تجاوز السعة هنا.

مثال طويل لـ VBA # 2

أوجد الصف الأخير باستخدام متغير طويل

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

افترض أن لديك بيانات تنتهي عند 25000 صف كما هو موضح في الصورة أدناه.

الآن أعرف أن آخر رقم صف تم استخدامه هو 25000 ، ولهذا ، لا نحتاج إلى نوع البيانات "LONG" لأن نوع البيانات "الصحيح" يمكن أن يعطيني الصف الأخير.

انظر إلى الكود أدناه لمعلوماتك.

رمز:

 Sub Long_Example1 () Dim k As Integer k = Cells (Rows.Count، 1) .End (xlUp) .Row MsgBox k End Sub 

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

كمبرمج ، من المهم معرفة حجم البيانات التي ستحصل عليها في المستقبل. لأنه في الوقت الحالي قد تنتهي البيانات عند الصف 25000 ولكن إذا زادت البيانات إلى ما بعد حد "عدد صحيح" أي 32767 ، فإنها تتسبب في حدوث خطأ في التدفق.

على سبيل المثال ، سأزيد البيانات إلى 32768 صفاً.

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

تذكر أنني قمت بزيادة الحد بمقدار 1 فقط عن حد قيمة "عدد صحيح" ، لذلك حصلت على خطأ تجاوز السعة.

لذلك من المهم معرفة حجم بياناتك قبل تعيين نوع بيانات للمتغير. من الأفضل دائمًا إعلان المتغير على أنه "طويل" دون التفكير في حجم بياناتك في المستقبل.

بدائل لبرنامج Excel VBA Long Variable

يجب أن تفكر بالفعل في ما إذا كنا نريد الاحتفاظ بقيمة أكبر من حد متغير طويل. لهذا ، نحتاج إلى استخدام أنواع بيانات مختلفة ، مثل VBA "String" أو "Variant"

تذكر أنه في اللحظة التي يعبر فيها الرقم 2147483647 ، سنحصل على خطأ تجاوز في VBA بنوع بيانات طويل. لتخزين أكثر من هذا الرقم ، نحتاج إلى استخدام نوع البيانات "String" أو "Variant".

للوتر

رمز:

 Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub 

للمتغير

رمز:

 Sub Long_Example2 () Dim k كمتغير k = 2147483648 MsgBox k End Sub 

عندما نقوم بتشغيل الأكواد المذكورة أعلاه ، سوف تظهر الرقم المذكور.


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