وظيفة VBA UBound | كيفية استخدام UBound في Excel VBA؟

UBOUND أو المعروف أيضًا باسم Upper Bound ، تُستخدم هذه الوظيفة في VBA مع وظيفتها المعاكسة والتي تُعرف أيضًا باسم LBOUND أو تُعرف أيضًا باسم وظيفة Lower Bound ، واستخدام هذه الوظيفة هو تحديد طول المصفوفة في رمز وكما يوحي الاسم UBOUND يستخدم لتحديد الحد الأعلى للمصفوفة.

وظيفة VBA UBOUND

كيف تعرف الحد الأقصى لطول المصفوفة في Excel؟ نعم ، يمكننا رؤية الحد الأقصى لطول المصفوفة وتحديثه يدويًا ، ولكن إذا كنت تفعل كل ذلك ، فإن اليوم هو نهايته لأن لدينا وظيفة تسمى UBOUND لتحديد الطول الأقصى للمصفوفة. اتبع هذه المقالة للحصول على مزيد من المعرفة بوظيفة UBOUND في Excel VBA.

تعني كلمة UBOUND "الجزء العلوي". في كثير من الأحيان في الترميز قد نحتاج إلى إيجاد الحد الأقصى لطول المصفوفة. على سبيل المثال ، MyResult (24) يعني اسم الصفيف MyResult يحمل 25 قيمة لأن المصفوفة تبدأ من الصفر ، وليس من واحد. إذن 24 تعني +1 أي 25 قيمة بالكامل.

هنا الحد الأقصى لطول المصفوفة هو 24 ، بدلاً من توفير طول المصفوفة يدويًا ، يمكننا استخدام الدالة المضمنة UBOUND للحصول على أقصى طول للمصفوفة.

الكود هو: UBOUND (MyResult)  أي UBOUND (24)

لذا فإن دالة Excel VBA UBOUND تمثل الحد الأعلى لحجم الصفيف.

كيفية استخدام وظيفة VBA UBound في Excel؟

صيغة VBA UBOUND بسيطة للغاية لأنها تحتوي على معلمتين فقط.

UBound (Arrayname [، Dimension])
  • اسم المصفوفة: هذا هو اسم اسم المصفوفة الذي حددناه. على سبيل المثال ، في المثال أعلاه ، MyResult هو اسم الصفيف.
  • [البعد]: إذا كانت المصفوفة تحتوي على أكثر من بُعد واحد ، فنحن بحاجة إلى تحديد بُعد المصفوفة. إذا تجاهلت ، فستتعامل مع البعد الأول افتراضيًا.

تعد وظيفة Excel VBA UBOUND مفيدة جدًا في تحديد طول الحلقات أثناء تشغيل الحلقات.

أمثلة على وظيفة UBOUND في Excel VBA

فيما يلي الأمثلة العملية لوظيفة VBA UBound.

يمكنك تنزيل قالب وظيفة VBA UBound هذا هنا - قالب وظيفة VBA UBound

مثال 1

لبدء الإجراءات اسمحوا لي أن أكتب الكود البسيط. اتبع الخطوات التالية لتطبيق وظيفة VBA UBOUND.

الخطوة 1: ابدأ ماكرو excel وحدد اسم المتغير.

رمز:

 Sub Ubound_Example1 () صفيف خافت الطول (0 إلى 4) كسلسلة 

الخطوة 2: سأخصص قيمًا لاسم المصفوفة هذا.

رمز:

 Sub Ubound_Example1 () Dim ArrayLength (0 إلى 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "فئة VBA" End Sub 

الخطوة 3: الآن باستخدام مربع رسالة مع وظيفة UBOUND ، سنرى الحد الأقصى لطول المصفوفة.

رمز:

 Sub Ubound_Example1 () Dim ArrayLength (0 إلى 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = طول الحد العلوي لـ "فئة VBA" MsgBox هو: "& UBound (ArrayLength) End Sub 

الخطوة 4: قم بتشغيل هذا الرمز ، بالضغط على مفتاح F5 أو يمكنك أيضًا تشغيل الكود يدويًا كما هو موضح في لقطة الشاشة أدناه.

سيظهر لك مربع الرسالة أن رقم الحد العلوي للمصفوفة سيظهر في مربع الرسالة.

مثل هذا باستخدام وظيفة Excel VBA UBOUND ، يمكننا الحصول على طول الحد العلوي للصفيف.

مثال # 2 - استخدام وظيفة Excel VBA UBOUND لنسخ البيانات

افترض أن لديك قائمة بالبيانات في ورقة إكسل واحدة مثل القائمة أدناه.

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

الخطوة 1: إنشاء ماكرو وتحديد متغير الصفيف.

رمز:

 Sub Ubound_Example2 () Dim DataRange () كـ Variant End Sub 

الخطوة 2: قم الآن بتنشيط ورقة البيانات عن طريق مراجعة اسمها.

رمز:

 Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). تنشيط End Sub 

الخطوة 3: الآن قم بتعيين نطاق البيانات للمتغير المحدد باستخدام الكود أدناه.

رمز:

 Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). تنشيط DataRange = Range ("A2"، Range ("A1"). End (xlDown). End (xlToRight)) End Sub 

الخطوة 4: أضف الآن ورقة عمل جديدة إلى المصنف.

رمز:

 Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). تنشيط DataRange = Range ("A2"، Range ("A1"). End (xlDown). End (xlToRight)) Worksheets.Add End Sub 

الخطوة 5: الآن أضف البيانات إلى الورقة المضافة حديثًا باستخدام وظيفة Excel VBA UBOUND في شكل الكود أدناه.

رمز:

 Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). تنشيط DataRange = Range ("A2"، Range ("A1"). End (xlDown). End (xlToRight)) Worksheets.Add Range (ActiveCell) ، ActiveCell.Offset (UBound (DataRange، 1) - 1، UBound (DataRange، 2) - 1)) = DataRange End Sub 

سيعوض الرمز أعلاه الخلايا عن طريق الحد الأقصى للطول الذي تم إرجاعه بواسطة دالة UBOUND وسيكون هذا النطاق مساويًا لقيمة اسم المصفوفة " DataRange "

الخطوة 6: الآن قم بتشغيل هذا الرمز ، وسوف يقوم بلصق القيمة في الورقة الجديدة.

هذا الرمز ديناميكي لأنه حتى عندما تزداد البيانات أفقيًا وعموديًا ، فإنها ستأخذ النطاق تلقائيًا. الآن سأضيف بعض الخطوط الوهمية إلى البيانات.

الآن سأقوم بتشغيل هذا الرمز مرة أخرى ، وسيضيف الآن الأسطر المضافة حديثًا أيضًا.

رمز:

 Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). تنشيط DataRange = Range ("A2"، Range ("A1"). End (xlDown). End (xlToRight)) Worksheets.Add Range (ActiveCell) ، ActiveCell.Offset (UBound (DataRange، 1) - 1، UBound (DataRange، 2) - 1)) = DataRange محو DataRange End Sub 

أشياء للذكرى

  • تُرجع UBOUND الحد الأقصى لطول الصفيف.
  • تبدأ المصفوفة من 0 وليس من 1.
  • إذا كنت تريد القيمة الأقل للصفيف ، فأنت بحاجة إلى استخدام VBA LBOUND.
  • إذا كانت المصفوفة تحتوي على أكثر من بُعد ، فأنت بحاجة إلى تحديد رقم البعد أيضًا.