VBA مزدوج | كيف يتم التصريح عن نوع البيانات المضاعفة في VBA؟

نوع بيانات Excel VBA مزدوج

VBA Double هو نوع من أنواع البيانات نقوم بتعيينها لتعريف المتغيرات ، وهو إصدار محسن أو أطول من متغير نوع البيانات "المفرد" وعادة ما يستخدم لتخزين المنازل العشرية الأطول.

يقوم نوع بيانات VBA Integer دائمًا بتحويل القيم العشرية إلى أقرب قيمة عدد صحيح ، ويمكن لنوع البيانات الفردي إظهار ما يصل إلى رقمين من المنازل العشرية. من ناحية أخرى ، يمكن لنوع البيانات "مزدوج" تخزين القيم من -1.79769313486231E308 إلى -4.94065645841247E324 للقيم السالبة وللأرقام الموجبة يمكنه تخزين القيم من 4.94065645841247E-324 إلى 1.79769313486232E308 .

والأهم من ذلك ، أنها تستهلك 8 بايت من الذاكرة.

أمثلة لاستخدام VBA Double Data Type

يمكنك تنزيل قالب VBA Double Excel هذا هنا - قالب VBA Double Excel

مثال 1

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

رمز:

 Integer_Ex () Sub Integer_Ex () Dim k كـ صحيح k = 2.569999947164 MsgBox k End Sub 

لقد أعلنت أن المتغير "k" هو عدد صحيح ، وبالنسبة لهذا المتغير ، قمت بتعيين القيمة 2.569999947164.

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

يتم عرض النتيجة على أنها 3 بدلاً من الرقم المزود 2.569999947164. السبب هو أن VBA قد قام بتحويل الرقم إلى أقرب قيمة عدد صحيح مثل 3.

عندما تكون القيمة العشرية أكثر من 0.5 ، سيتم تحويلها إلى قيمة عدد صحيح تالية وعندما تكون القيمة العشرية أقل من 0.51 ، سيتم التحويل إلى قيمة عدد صحيح أقل.

الآن سوف أقوم بتغيير نوع البيانات من عدد صحيح إلى مفرد.

رمز:

 Sub Integer_Ex () Dim k As Single k = 2.569999947164 MsgBox k End Sub 

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

هذه المرة حصلنا على النتيجة 2.57 ، لذا حصلنا هذه المرة على منزلتين عشريتين. كانت القيمة الأصلية التي قمنا بتعيينها هي 2.569999947164 ، لذلك في هذه الحالة ، ثالثًا ، القيمة العشرية الموضوعة هي 9 ، لذلك نظرًا لأن هذا أكثر من 5 ، فقد حولت القيمة العشرية للمركز الثاني من 6 إلى 7.

الآن قم بتغيير نوع البيانات من Single إلى Double.

رمز:

 Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub 

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

هذه المرة حصلت على جميع القيم العشرية. يمكننا توفير ما يصل إلى 14 رقمًا من المنازل العشرية ضمن نوع البيانات المضاعف.

إذا قدمت أي قيمة أكبر من 14 منزلاً عشريًا ، فسيتم تحويلها إلى أقرب قيمة. للحصول على مثال ، انظر إلى الصورة أدناه.

لقد كتبت 15 منزلاً عشريًا بدلاً من 14 ، إذا قمت بالضغط على مفتاح الإدخال ، فسيعود إلى 14 رقمًا فقط.

بدلاً من 59 (آخر رقمين) ، حصلنا على 6 ، أي بما أن الرقم الأخير هو 9 وهو أكبر من 5 الرقم السابق 5 تم تحويله إلى قيمة عدد صحيح تالية ، أي 6

المثال رقم 2

سأوضح الآن كيفية العمل مع مرجع الخلية في ورقة العمل. فيما يلي الأرقام التي أدخلتها في ورقة العمل.

دعونا الشروع في الاستيلاء على نفس القيم إلى التالي باستخدام عدد صحيح نوع البيانات، وحيدة نوع البيانات، و مضاعفة نوع.

يوجد أدناه رمز للاحتفاظ بالقيم من العمود A إلى B باستخدام نوع البيانات الصحيح.

رمز:

 Sub Double_Ex () Dim k as Integer Dim CellValue as Integer For k = 1 To 6 CellValue = Cells (k، 1) .Value Cells (k، 2) .Value = CellValue Next k End Sub 

لنقم بتشغيل الكود من خلال مفتاح الاختصار F5 ، لنرى القيم التي نحصل عليها في العمود B.

عندما استخدمنا عدد صحيح كنوع بيانات حصلنا على جميع الأعداد الصحيحة أي بدون كسور عشرية.

الآن سأقوم فقط بتغيير نوع بيانات vba لمتغير من عدد صحيح إلى فردي.

رمز:

 Sub Double_Ex () Dim k as Integer Dim CellValue as Single For k = 1 To 6 CellValue = Cells (k، 1) .Value Cells (k، 2) .Value = CellValue Next k End Sub 

سيعطي هذا الرمز النتيجة أدناه.

هذه المرة حصلنا على منزلتين عشريتين فقط.

الآن يغير نوع البيانات من مفرد إلى مزدوج.

رمز:

 Sub Double_Ex () Dim k as Integer Dim CellValue Double For k = 1 To 6 CellValue = Cells (k، 1) .Value Cells (k، 2) .Value = CellValue Next k End Sub 

سيعود هذا إلى النتيجة أدناه.

لقد حصلنا على القيم الدقيقة من العمود A.

أشياء للذكرى

  • المضاعف هو نوع بيانات محسّن لنوع بيانات مفرد.
  • يمكن أن تستوعب ما يصل إلى 14 منزلاً عشريًا.
  • تستهلك 8 بايت من ذاكرة النظام.

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