النطاق المسمى VBA | كيفية إنشاء واستخدام النطاقات المسماة؟
نطاق مسمى لـ Excel VBA
عندما نعمل مع كمية كبيرة من البيانات لتجنب الإشارة إلى خلية أو نطاقات خلايا معينة ، فإننا عادةً ما ننشئ نطاقات مسماة ويسمح لنا بالإشارة إلى نطاق الخلايا المطلوب من خلال النطاق المسمى. في VBA لإنشاء نطاق اسم لدينا إضافة وظيفة اسم.
يمكننا تحديد خلية أو نطاق من الخلايا وإعطاء اسم لها. بعد تسمية الخلايا ، يمكننا الرجوع إلى تلك الخلايا عن طريق إدخال تلك الأسماء المحددة بدلاً من مراجع الصف أو الأعمدة المعتادة.
يمكنك تنزيل قالب إكسل للمجال المسمى VBA من هنا - قالب إكسل للنطاق المسمى VBAكيفية إنشاء نطاقات محددة؟
إنها وظيفة السير في المتنزه لإنشاء نطاقات مسماة. أول شيء يتعين علينا القيام به هو تحديد الخلايا التي نريد إنشاء نطاق اسم في Excel.
للحصول على مثال ، انظر إلى الصورة أدناه.
للوصول إلى الربح في الخلية B4 ، قمت بتطبيق الصيغة B2 - B3.
هذا هو الشيء الشائع الذي يفعله الجميع. ولكن ماذا عن إنشاء الأسماء وتطبيق الصيغة شيئًا مثل "المبيعات" - "التكلفة".
ضع مؤشرًا على الخلية B2> انتقل إلى مربع الاسم وقم بتسميته بالمبيعات.
ضع المؤشر على الخلية B3 وسميها التكلفة.
الآن في عمود الربح ، يمكننا إحالة هذه الأسماء بدلاً من مراجع الخلايا.
هذا هو الشيء الأساسي في Named Ranges.
كيفية إنشاء نطاقات مسماة باستخدام كود فبا؟
مثال 1
هل فكرت يومًا في إنشاء نطاق مسمى باستخدام كود VBA؟
اتبع الخطوات أدناه لإنشاء نطاق مسمى.
الخطوة 1: تحديد المتغير "المدى".
رمز:
Sub NamedRanges_Example () Dim Rng As Range End Sub
الخطوة 2: الآن قم بتعيين المتغير "Rng" على خلايا معينة ترغب في تسميتها.
رمز:
Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") End Sub
الخطوة 3: استخدام خاصية أسماء الوصول إلى الكائن "ThisWorkbook".
لدينا العديد من المعلمات مع طريقة Names.Add . فيما يلي التفسيرات.
[الاسم]: الاسم ليس سوى ما هو الاسم الذي نود أن نطلقه على النطاق الذي نحدده.
أثناء تسمية الخلية ، يجب ألا تحتوي على أي أحرف خاصة باستثناء رمز الشرطة السفلية (_) ويجب ألا تحتوي على أحرف مسافات أيضًا ، ولا يجب أن تبدأ بقيم عددية.
[يشير إلى]: هذا ليس سوى ما هو نطاق الخلايا الذي نشير إليه.
أعتقد أن هذين المعيارين جيدان بما يكفي لبدء الإجراءات.
الخطوة 4: في الاسم ، تدخل الوسيطة الاسم الذي ترغب في تقديمه. لقد سميت باسم "SalesNumbers".
رمز:
Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") ThisWorkbook.Names.Add Name: = "SalesNumbers" End Sub
الخطوة 5: في الوسيطة تشير إلى ، أدخل نطاق الخلايا التي نرغب في إنشائها. في اسم المتغير "Rng" ، قمنا بالفعل بتعيين نطاق من الخلايا كـ A2 إلى A7 ، لذلك قم بتوفير الوسيطة كـ "Rng".
رمز:
Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") ThisWorkbook.Names.Add Name: = "SalesNumbers" ، RefersTo: = Rng End Sub
حسنًا ، سيقوم هذا الرمز بإنشاء نطاق مسمى للخلايا من A2 إلى A7.
الآن في ورقة العمل ، قمت بإنشاء بعض الأرقام من A2 إلى A7.
في الخلية A8 ، أريد الحصول على إجمالي أرقام الخلايا أعلاه. باستخدام النطاق المسمى ، سننشئ مجموع هذه الأرقام.
رمز:
Sub NamedRanges_Example () Dim Rng As Range Set Rng = Range ("A2: A7") ThisWorkbook.Names.Add Name: = "SalesNumbers" ، RefersTo: = Rng Range ("A8"). Value = WorksheetFunction.Sum (Range (Range ( "أرقام المبيعات")) End Sub
إذا قمت بتشغيل هذا الرمز يدويًا أو بالضغط على مفتاح f5 ، فسنحصل على إجمالي النطاق المسمى في الخلية A8.
هذه هي الحقائق الأساسية التي يجب معرفتها حول "النطاقات المسماة".
المثال رقم 2
في VBA باستخدام كائن RANGE ، يمكننا الرجوع إلى الخلايا. وبالمثل ، يمكننا أيضًا الرجوع إلى تلك الخلايا باستخدام النطاقات المسماة أيضًا.
على سبيل المثال ، في المثال أعلاه ، قمنا بتسمية الخلية B2 باسم "المبيعات" و B3 باسم "التكلفة" .
باستخدام مرجع الخلية الفعلي ، نشير إلى تلك الخلايا مثل هذه.
رمز:
Sub NamedRanges () Range ("B2"). حدد "هذا سيحدد نطاق خلية B2 (" B3 "). حدد" سيؤدي هذا إلى تحديد B3 cell End Sub
نظرًا لأننا أنشأنا هذه الخلايا بالفعل ، يمكننا الإشارة إلى استخدام تلك الأسماء مثل أدناه.
رمز:
Sub NamedRanges () Range ("Sales"). حدد "هذا سيحدد الخلية المسماة" Sales "، أي نطاق الخلية B2 (" التكلفة "). حدد" هذا سيحدد الخلية المسماة باسم "التكلفة" أي B3 cell End Sub
مثل هذا باستخدام النطاقات المسماة ، يمكننا الاستفادة من تلك الخلايا. باستخدام هذه الأسماء يمكننا حساب مبلغ الربح في الخلية B4. لهذا الاسم الأول الخلية B4 على أنها ربح.
الآن في محرر VBA ، قم بتطبيق هذا الرمز.
رمز:
النطاق الفرعي NamedRanges_Example1 () ("الربح"). القيمة = النطاق ("المبيعات") - النطاق ("التكلفة") النهاية الفرعية
سيؤدي هذا إلى حساب مبلغ الربح في الخلية المسماة "الربح".