Vba: كيفية إرجاع مصفوفة من دالة


يمكنك استخدام بناء الجملة الأساسي التالي لإرجاع مصفوفة من دالة في VBA:

 Function GenerateRandom() As Integer()

    Dim RandValues(2) As Integer
     
    'generate three random integers and store them in array 
    RandValues(0) = Int(Rnd * 100)
    RandValues(1) = Int(Rnd * 100)
    RandValues(2) = Int(Rnd * 100)
    
    'return array as a result of the function
    GenerateRandom = RandValues

End Function

يقوم هذا المثال تحديدًا بإنشاء ثلاثة أعداد صحيحة عشوائية، وتخزينها في مصفوفة، ثم إرجاع المصفوفة كنتيجة للدالة المسماة GenerateRandom() .

توضح الأمثلة التالية كيفية إرجاع القيم من هذه الدالة بطريقتين مختلفتين:

  • إرجاع القيم إلى مربع الرسالة
  • إرجاع القيم في الخلايا

دعنا نذهب!

المثال 1: إرجاع مصفوفة من دالة وعرض القيم في مربع الرسالة

يمكننا استخدام الصيغة التالية لإنشاء دالة تسمى GenerateRandom() والتي تولد مصفوفة من ثلاثة أعداد صحيحة عشوائية، ثم تعرض الأعداد الصحيحة في مربع رسالة باستخدام الدالة MsgBox :

 'define function to generate array of three random integers
Function GenerateRandom() As Integer()

    Dim RandValues(2) As Integer
     
    RandValues(0) = Int(Rnd * 100)
    RandValues(1) = Int(Rnd * 100)
    RandValues(2) = Int(Rnd * 100)
    
    GenerateRandom = RandValues

End Function

'define sub to display values from function in a message box
SubDisplayRandom ()

     Dim WS As Worksheet
     Dim RandomValues() As Integer
     Dim i As Integer

     Set WS = Worksheets(" Sheet1 ")
     RandomValues = GenerateRandom()

     j = " Array values: "
     For i = 0 To 2
          j = (j & RandomValues(i) & " ")
     Next i
     MsgBox j

End Sub

عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:

جدول إرجاع VBA للوظيفة

يمكننا أن نرى أن الدالة تُرجع الأعداد الصحيحة العشوائية 96 و 87 و 5 في مربع الرسالة.

المثال 2: إرجاع مصفوفة من دالة وعرض القيم في الخلايا

يمكننا استخدام بناء الجملة التالي لإنشاء دالة تسمى GenerateRandom() والتي تولد مصفوفة من ثلاثة أعداد صحيحة عشوائية ثم تعرض الأعداد الصحيحة بدءًا من الخلية A1 في Excel:

 'define function to generate array of three random integers
Function GenerateRandom() As Integer()

    Dim RandValues(2) As Integer
     
    RandValues(0) = Int(Rnd * 100)
    RandValues(1) = Int(Rnd * 100)
    RandValues(2) = Int(Rnd * 100)
    
    GenerateRandom = RandValues

End Function

'define sub to display values from function starting in cell A1
SubDisplayRandom ()

     Dim WS As Worksheet
     Dim RandomValues() As Integer
     Dim i As Integer

     Set WS = Worksheets(" Sheet1 ")
     RandomValues = GenerateRandom()

     For i = 0 To 2
          WS.Range(" A1 ").Offset(i, 0).Value = RandomValues(i)
     Next i

End Sub

عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:

يمكننا أن نرى أن الدالة تُرجع الأعداد الصحيحة العشوائية 96 و 87 و 5 من الخلية A1 في ورقة العمل الخاصة بنا.

ملاحظة : لإرجاع قيم الجدول بدءًا من خلية مختلفة، ما عليك سوى استبدال A1 في الكود بمرجع خلية مختلف.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:

كيفية إرجاع قيمة من دالة VBA
كيفية الحصول على قيمة خلية من ورقة أخرى في VBA
كيفية استخدام IsNumeric للتحقق مما إذا كانت الخلية رقمًا في VBA

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *