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
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يمكننا أن نرى أن الدالة تُرجع الأعداد الصحيحة العشوائية 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