قم بإنشاء أرقام عشوائية باستخدام وظيفة VBA RND

أرقام عشوائية من Excel VBA

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

يعمل هذا تمامًا مثل وظيفة Excel "RAND". كما قلت في دالة ورقة العمل "RAND" ، في VBA أيضًا يمكننا إنشاء أرقام عشوائية أكبر من 0 ولكن أقل من 1.

ألقِ نظرة الآن على صيغة الدالة "RND".

[رقم]: يمكننا تمرير الحجة بثلاث طرق.

  • إذا مررنا الرقم كـ <0 ، فإنه يستمر في إنشاء نفس الرقم العشوائي في كل مرة.
  • إذا مررنا الرقم كـ 0 ، فسيكرر الرقم الأحدث الذي قدمه.
  • إذا مررنا الرقم> 0 ، فسيستمر في إعطائك أرقامًا عشوائية مختلفة ، أي الرقم العشوائي التالي في التسلسل.

كيفية إنشاء أرقام عشوائية باستخدام كود فبا؟

يمكنك تنزيل قالب Excel للأرقام العشوائية من VBA هنا - قالب Excel للأرقام العشوائية من VBA

مثال 1

الآن سنرى مثالًا بسيطًا لاستخدام وظيفة "RND". اتبع الخطوات أدناه لكتابة رمز VBA بنفسك.

الخطوة 1: قم بتعريف المتغير على أنه "عدد صحيح" في VBA

رمز:

 Rnd_Example1 () خافت K كـ عدد صحيح End Sub 

الخطوة 2: الآن قم بتعيين القيمة للمتغير "k" من خلال وظيفة " RND ".

رمز:

 Rnd_Example1 () خافت K كعدد صحيح K = Rnd () End Sub 

الخطوة 3: اعرض القيمة التي أرجعها المتغير "k" في مربع الرسالة .

رمز:

 Rnd_Example1 () خافت K كعدد صحيح K = Rnd () MsgBox K End Sub 

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

انظروا الى ما حدث.

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

يجب أن تفكر في الخطأ هنا.

الشيء الخطأ هنا هو نوع البيانات الذي خصصناه للمتغير "k".

إذا عدت إلى المتغير الذي أعلناه أننا خصصنا نوع البيانات على أنه عدد صحيح. نظرًا لأننا قمنا بتعيين المتغير على أنه عدد صحيح ، فيمكنه فقط إظهار الأعداد الصحيحة بين -32768 إلى 32767.

عندما تُرجع RND الرقم العشري ، يحول VBA الرقم العشري إلى أقرب عدد صحيح ، أي 1.

لذلك ، لجعل الصيغة تعمل بشكل صحيح ، قم بتعريف المتغير على أنه " مزدوج ".

"مزدوج" هو نوع البيانات في VBA الذي يمكنه الاحتفاظ بالقيم العشرية.

رمز:

 Sub Rnd_Example1 () Dim K As Double K = Rnd () MsgBox K End Sub 

الآن الكود وانظر ما هي النتيجة.

انقر فوق "موافق" وتشغيل مرة أخرى وشاهد النتيجة.

هذه المرة حصلنا على نتيجة مختلفة. نظرًا لأن "RND" وظيفة متقلبة بطبيعتها ، فإنها تعيد إنتاج نتائج مختلفة في كل مرة تقوم فيها بتنفيذ التعليمات البرمجية.

مثال # 2 - احصل على نفس الرقم العشوائي في كل مرة

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

رمز:

 Sub Rnd_Example2 () Dim K As Double K = Rnd (0) MsgBox K End Sub 

سيؤدي هذا إلى إنتاج نفس الرقم مرارًا وتكرارًا عند تنفيذ الكود.

مثال # 3 - إنشاء رقم عشوائي كامل

يمكننا أيضًا إنشاء أعداد صحيحة باستخدام دالة VBA أخرى أو أرقام إدخال أخرى. للحصول على مثال ، انظر إلى الكود أدناه.

رمز:

 مثال Rnd_Rnd فرعي 3 () خافت K كمزدوج K = 1 + Rnd * 100 MsgBox K End Sub 

سينشئ هذا الرمز أرقامًا صحيحة عشوائية بنقاط عشرية في كل مرة ننفذ فيها الكود.

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

رمز:

 Sub Rnd_Example3 () Dim K As Double K = CInt (1 + Rnd * 100) MsgBox K End Sub 

سيستمر هذا في توليد الأعداد الصحيحة من 1 إلى 100.


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