كائن النطاق والعمود والصف

vba,Range Object,Column Object,Row Object,mahmoud zaki elshrief,كائن النطاق,كائن العمود,كائن الصف,محمود زكى الشريف,اكاديمه محمود زكى الشريف
Range Object


يعتبر كائن Range أحد كائنات Excel VBA الأكثر أهمية وتكرارًا.
قد يكون موضوع كائن نطاق VBA الخاص بـ Excel أحيانًا مربكًا لبعض المستخدمين. 
أحد الأسباب الرئيسية لهذا هو حقيقة أن هناك عدة طرق مختلفة للإشارة إلى كائن Range.
(يرجى مشاهدة الفيديوهات التوضيحية المرفقة ، بها شرح لنقاط لم نتطرق لها بالمقال)

ما هو أول ما يتبادر إلى ذهنك عند التفكير في Excel؟

الخلايا ، معظم الوقت الذي نقضيه في العمل مع برنامج Excel ، نحن نعمل مع الخلايا.
لذلك ، فمن المنطقي ، عند استخدام Visual Basic for Applications لأغراض تصبح أكثر فاعلية من Excel ، أحد المواضيع التي يجب أن نتعلمها هو كيفية العمل مع الخلايا داخل بيئة VBA.

يوفر هذا الدرس التعليمي VBA شرحًا أساسيًا حول كيفية العمل مع الخلايا باستخدام Visual Basic for Applications.
بتعبير أدق ، في هذه المشاركة تحديدًا ، سنتطرق الى التفاصيل الأساسية التي تحتاج إلى معرفتها للعمل مع كائن نطاق VBA في Excel.
النطاق هو الكائن الذي تستخدمه لأغراض الإشارة والعمل مع الخلايا داخل VBA.

ومع ذلك ، لا تنتهي أهمية كائن نطاق VBA في Excel .
على الرغم من أهمية نطاق VBA الخاص بـ Excel ، عادةً ما يكون إنشاء مراجع إلى الكائنات أحد الموضوعات الأكثر إرباكًا للمستخدمين الذين بدأوا العمل مع وحدات الماكرو و Visual Basic للتطبيقات ، بسبب حقيقة أن VBA يسمح بالإشارة إلى النطاقات بطرق عديدة ومختلفة.

تظل الحقيقة أنه بغض النظر عن مدى الخلط بين موضوع كائن نطاق VBA الخاص بـ Excel ، يجب أن تتحكم به لتصبح ماكرو وخبير VBA.
هدفي الرئيسي فى هذا الدرس التعليمي VBA هو مساعدتك على فهم الأمور الأساسية المحيطة بهذا الموضوع وتوضيح الطرق الأكثر شيوعًا التي يمكنك فيها الرجوع إلى كائن VBA Range الخاص بـ Excel باستخدام Visual Basic for Applications.

ما هو كائن نطاق VBA في Excel ؟ Range
مجموعة VBA من Excel هي كائن Object
الكائنات هي ما يتم معالجتها بواسطة Visual Basic for Applications.

بتعبير أدق ، يمكنك استخدام كائن النطاق لتمثيل نطاق داخل ورقة العمل. 
وهذا يعني أنه باستخدام كائن VBA Range الخاص بـ Excel ، يمكنك الرجوع إلى:


  1. خلية واحدة Single Cell .
  2. صف أو عمود من الخلايا Row or a Column of Cells .
  3. مجموعة مختارة من الخلايا ، بصرف النظر عما إذا كانت متجاورة أم لا.
  4. مجموعة ثلاثية الأبعاد.
كما ترى ، يمكن أن يتغير حجم كائنات نطاق VBA الخاص بـ Excel على نطاق واسع. 
في المستوى الأساسي ، يمكنك الإشارة إلى خلية واحدة (1). 
على الطرف الآخر ، لديك إمكانية الرجوع إلى كافة الخلايا في ورقة عمل Excel.
على الرغم من هذه المرونة عند الإشارة إلى الخلايا داخل ورقة عمل Excel معينة ، فإن كائن VBA Range الخاص بـ Excel لديه بعض القيود. 
الأكثر ملاءمة هو أنه يمكنك فقط استخدامه للإشارة إلى ورقة عمل Excel واحدة في المرة الواحدة. 
لذلك ، للإشارة إلى نطاقات الخلايا في أوراق عمل مختلفة ، يجب عليك استخدام مراجع منفصلة لكل من أوراق العمل.
كيفية الرجوع إلى كائن نطاق VBA في Excel
من بين الأشياء الأولى التي يجب أن تتعلمها من أجل إتقان كائن نطاق VBA الخاص بـ Excel هي كيفية الرجوع إليه. 
توضح الأقسام التالية القواعد الأكثر صلة التي تحتاج إلى معرفتها من أجل صياغة المراجع المناسبة.
تغطي الأقسام القليلة الأولى الطريقة الأساسية للإشارة إلى كائن نطاق VBA الخاص بـ Excel: الخاصية Range. هذا أيضًا كيف يشير مسجل الماكرو عمومًا إلى كائن النطاق.
ومع ذلك ، ستجد بعض الطرق الإضافية لإنشاء مراجع الكائنات ، مثل استخدام خانات أو خصائص الأوفست Offset.
هذه ليست الطريقة الوحيدة للإشارة إلى كائنات VBA Range الخاصة بـ Excel. 
مقدمة للإشارة إلى كائن نطاق VBA في Excel ومؤهل الكائن
لكي تتمكن من العمل بشكل مناسب مع كائنات النطاق ، يجب أن تفهم كيفية العمل مع الأجزاء الرئيسية  في مرجع إلى كائن
 VBA Range الخاص بـ Excel:
مؤهل الكائن.
هذا يجعل الإشارة ، بشكل عام ، إلى القواعد العامة لإنشاء مراجع كائن. 
الخاصية أو الطريقة الملائمة التي تستخدمها لأغراض إرجاع كائن نطاق.
وهذا يجعل الإشارة ، بشكل عام ، إلى القواعد المحددة التي تنطبق على الإشارة إلى كائن VBA Range الخاص بـ Excel.
يركز هذا الدرس التعليمي VBA على العنصر الثاني أعلاه
 الخصائص الرئيسية التي يمكنك استخدامها للإشارة إلى كائن VBA Range الخاص بـ Excel.
ومع ذلك ، سأتطرق الى بعض النقاط الرئيسية فيما يتعلق بمراجعة الكائن أدناه. 
مقدمة إلى مراجع كائن VBA مؤهل بالكامل
الكائنات قادرة على العمل كحاويات لكائنات أخرى.
في المستوى الأساسي ، عند الإشارة إلى كائن معين ، فإنك تخبر Excel بماهية الكائن عن طريق الإشارة إلى جميع والديها (والديها تعنى ان كل كائن يعتبر جزء من كائن أكبر منه ). 
بمعنى آخر ، يمكنك الانتقال من خلال تدرج كائن VBA في Excel.
يمكنك التنقل خلال تدرج كائن Excel باستخدام معامل نقطة (.) لتوصيل الكائنات في كل مستوى من المستويات المختلفة.
تُعرف هذه الأنواع من المراجع المحددة كمراجع مؤهلة تمامًا.
كيف تبدو مرجع مؤهل بشكل كامل في حالة كائن نطاق VBA الخاص بـ Excel؟
الكائن في الجزء العلوي من التسلسل الهرمي كائن VBA Excel هو التطبيق. 
يحتوي التطبيق نفسه على كائنات أخرى.
يوجد كائن VBA Range الخاص بـ Excel داخل كائن ورقة العمل. 
بتعبير أدق ، النطاق هو خاصية كائن ورقة العمل.
الكائن الأصل من أوراق العمل هو كائن المصنف. 
توجد المصنفات نفسها داخل كائن التطبيق.
لذلك ، فإن البنية الأساسية التي يجب عليك استخدامها للإشارة إلى كائن نطاق VBA الخاص بـ Excel هي كما يلي:
Application.Workbooks.Worksheets.Range
ستلاحظ أن بعض الأشياء داخل البنية الأساسية الموضحة أعلاه هي أمور غامضة. 
على وجه الخصوص ، ستلاحظ أن هذا لا يحدد مصنف Excel أو ورقة العمل المحددة التي تشير إليها. 
من أجل القيام بذلك ، يجب أن تفهم النقطة التالية .
كيف تشير إلى كائن من مجموعة ؟
ضمن Visual Basic for Applications ، مجموعة كائن مجموعة من الكائنات المرتبطة.
يعد كل من "مصنفات Workbooks " و "أوراق عمل Worksheets" ، التي يتم استخدامها لإنشاء مرجع مؤهل بشكل كامل إلى كائن نطاق VBA الخاص بـ Excel . 
أمثلة للمجموعات:
هناك طريقتان أساسيتان للإشارة إلى كائن معين داخل مجموعة:
استخدام اسم كائن VBA. 
في هذه الحالة ، يكون بناء الجملة هو ("Collection_name ("Object_name.
استخدام رقم فهرسة بدلاً من اسم الكائن. 
إذا اخترت هذا الخيار ، يكون بناء الجملة الأساسي هو ("Collection_name ("Index_number.
لاحظ :
في الطريقة الأولى يجب عليك استخدام الاقتباسات ("") داخل الأقواس. 
إذا كنت تستخدم الطريقة الثانية ، فلا يلزمك إحاطة Index_number بعلامات اقتباس.

لنفترض ، إذن ، أنك تريد العمل مع ورقة العمل المسماة "Sheet1" داخل المصنف "Book1.xlsm". 
استنادًا إلى الطريقتين للإشارة إلى كائن داخل مجموعة تستخدمها ، يبدو المرجع مختلفًا.

إذا قمت بإنشاء المرجع باستخدام اسم كائن VBA ، سيبدو المرجع كما يلي:
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range
بينما إذا قررت استخدام رقم فهرسي ، يكون المرجع هو التالي:
Application.Workbooks (1) .Worksheets (1) .Range

تبسيط مراجع كائن مؤهل بالكامل
يحتوي نموذج كائن VBA الخاص بـ Excel على بعض الكائنات الافتراضية. 
يتم افتراض ذلك إذا قمت بإدخال شيء مختلف.
يمكنك تبسيط مراجع كائن مؤهل بشكل كامل من خلال الاعتماد على كائنات VBA الافتراضية هذه. 
أنا لا أقترح عادة القيام بذلك بشكل أعمى ، حيث أنه ينطوي على بعض المخاطر.
هناك نوعان رئيسيان من الكائنات الافتراضية التي يمكنك استخدامها لأغراض تبسيط مراجع الكائنات المؤهلة بالكامل:
كائن التطبيق The Application object.
المصنف النشط وكائنات ورقة العمل.
The active Workbook and Worksheet objects
يتم افتراض كائن التطبيق دائمًا. 
بمعنى آخر ، يفترض Visual Basic for Applications دائمًا أنك تعمل مع Excel نفسه. 
لذلك ، يمكنك تبسيط مراجع كائن مؤهل بالكامل عن طريق حذف التطبيق. 
على سبيل المثال ، تكون المراجع المبسطة كما يلي:
Workbooks("Book1.xlsm").Worksheets("Sheet1").Range

Workbooks(1).Worksheets(1).Range

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

ومع ذلك ، يمكنك أيضًا استخدام هذه الكائنات الافتراضية  لإنشاء مراجع كائن VBA أبسط. 
نطاق Range
هذا يقودنا إلى نهاية مقدمة القواعد العامة لإنشاء مراجع كائن VBA. 
سنتطرق الى كيفية إنشاء مراجع مؤهلة بالكامل وتبسيطها لأغراض إنشاء مؤهل الكائنات الذي تستخدمه عند كتابة مراجع إلى كائن نطاق VBA في Excel.
تركز الأجزاءالتالية على القواعد المحددة التي يمكنك تطبيقها لأغراض الإشارة إلى كائن VBA Range الخاص بـ Excel. 
هذه هي الخصائص الأكثر استخدامًا لإرجاع كائن نطاق.
كيفية الرجوع إلى كائن نطاق VBA في Excel باستخدام خاصية النطاق
توضح الأجزاء أعلاه ، إلى حد ما ، القواعد الأساسية التي يمكنك تطبيقها للإشارة إلى كائن نطاق VBA الخاص بـ Excel. 
فلنبدأ باستدعاء الطريقتين اللتين يمكنك استخدامهما لإنشاء مرجع مؤهل بالكامل إذا كنت تعمل مع ورقة العمل المسماة "Sheet1" داخل المصنف المسمى "Book1.xlsm".
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range

Application.Workbooks (1) .Worksheets (1) .Range
تحتاج إلى تحديد نطاق معين تريد العمل معه. 
بمعنى آخر ، لا يكفي استخدام "النطاق" كما هو ظاهر في الأمثلة السابقة.
ربما تكون الطريقة الأساسية للإشارة إلى كائن VBA Range الخاص بـ Excel هي استخدام خاصية Range. 
عند التطبيق ، تقوم هذه الخاصية بإرجاع كائن المدى الذي يمثل خلية أو نطاق من الخلايا.
هناك إصداران من الخاصية Range: 
(Range property)

  1. الخاصية Worksheet.Range 
  2. والخاصية Range.Range. 
المنطق وراء كلاهما هو نفسه إلى حد كبير. 
يتمثل الاختلاف الرئيسي في العنصر الذي يتم تطبيقه:
في حالة الخاصية Worksheet.Range ، يتم تطبيق الخاصية Range على ورقة عمل.
عند استخدام خاصية Range.Range ، يتم تطبيق النطاق على نطاق.
بمعنى آخر ، يمكن تطبيق خاصية Range على نوعين مختلفين من الكائنات:

  1. كائنات ورقة العمل Worksheet objects.
  2. كائنات المدى Range objects.
لعلك لاحظت على الأرجح ، في كل الأمثلة المذكورة أعلاه ، أن الأصل الخاص بكائن VBA Range الخاص بـ Excel هو كائن ورقة العمل. 
بمعنى آخر ، في هذه الحالات ، يتم تطبيق الخاصية Range على كائن ورقة عمل.
ومع ذلك ، يمكنك أيضًا تطبيق خاصية Range على كائن Range. 
إذا قمت بذلك ، يتغير الكائن الذي تم إرجاعه بواسطة الخاصية Range.
السبب في ذلك ، كما هو موضح بواسطة Microsoft ، هو أن الخاصية Range.Range يعمل فيما يتعلق بالكائن الذي يتم تطبيقه عليه. 
لذلك ، إذا قمت بتطبيق الخاصية Range.Range ، تعمل الخاصية نسبة إلى كائن النطاق ، وليس ورقة العمل.
هذا يعني أنه يمكنك تطبيق خاصية Range.Range لأغراض الإشارة إلى نطاق فيما يتعلق بنطاق آخر. 
بناء الجملة الأساسي لخاصية النطاق
الصيغة الأساسية التي يمكنك استخدامها للإشارة إلى كائن VBA Range الخاص بـ Excel هي
 ("expression.Range (" Cell_Range
ستلاحظ أن بناء الجملة هذا يتبع القواعد العامة التي تطرقنا اليها أعلاه لكائنات VBA الأخرى مثل المصنفات وأوراق العمل. 
على وجه الخصوص ، ستلاحظ وجود أربعة عناصر أساسية:

  1. الكلمة الرئيسية "المدى".
  2. الأقواس التي تتبع الكلمة الرئيسية.
  3. نطاق الخلايا ذات الصلة. اشرح الطرق المختلفة التي يمكنك من خلالها تحديد النطاق أدناه.
  4. الاقتباسات. تكون Cell_Range التي تقوم بإدخالها بشكل عام ضمن عروض الأسعار ("").
    في هذه الحالة بالذات ، يعد "التعبير" مجرد متغير يمثل كائن ورقة عمل (في حالة الخاصية Worksheet.Range) أو كائن
    نطاق (لكائن Range.Range).
ولعل العنصر الأكثر إثارة للاهتمام في بناء جملة خاصية النطاق هو Cell_Range.
دعونا نلقي نظرة على بعض خصائصه ...
بشكل عام ، يمكنك عادةً الإشارة إلى Cell_Range بطريقة مشابهة لتلك التي تستخدمها عند كتابة صيغة Excel عادية. 
لا تقلق إذا كان كل شيء يبدو مربكًا بعض الشيء في البداية. 
يمكنك استخدام جملتين مختلفتين لتعريف النطاق الذي ترغب في العمل به:
1: ("Cell1")
هذا هو الحد الأدنى الذي يجب تضمينه لأغراض تعريف نطاق الخلايا ذات الصلة. 
إذا كنت تستخدم بناء الجملة هذا ، فإن الوسيطة "يجب أن تكون سلسلة عنوان أو اسم نطاق".
عند تسمية نطاق ، يمكنك استخدام أي من العوامل الثلاثة التالية:
Colon (:): (النقطتين فوق بعضهما) هذا هو المشغل الذي تستخدمه لإعداد المصفوفات.
في سياق الإشارة إلى نطاقات الخلايا ، يمكنك استخدام للإشارة إلى أعمدة أو صفوف كاملة أو نطاقات من الخلايا المتجاورة أو نطاقات من الخلايا غير المتجاورة.
Space (): (المسافة) هذا هو عامل التقاطع.
يمكنك استخدام عامل التقاطع لأغراض الإشارة إلى خلايا مشتركة لنطاقين منفصلين.
Comma(,): (الفاصلة) هذا هو مشغل الاتحاد ، والذي يمكنك استخدامه لدمج عدة نطاقات.
                   كما يمكنك استخدام هذا المشغل عند العمل مع نطاقات الخلايا غير المتجاورة.
"Cells(1).Value = "This is A1 - row 1
    "Cells(, 1).Value = "This is A1 - col 1
    "Cells(1, 1).Value = "This is A1 - explicit
    "Cells(3, 3).Value = "This is C3
2: (Cell1 ، Cell2)
إذا اخترت استخدام هذه الصيغة ، فأنت تحدد بشكل أساسي النطاق المعني عن طريق تسمية الخلايا في اثنين من أركانه:
"Cell1" هي الخلية الموجودة في الزاوية العلوية اليسرى من النطاق.
"Cell2" هي الخلية الموجودة في الركن الأيمن السفلي من النطاق.
ومع ذلك ، فإن هذه الصيغة ليست مقيدة بقدر ما قد تبدو للوهلة الأولى. 
دعنا نلقي نظرة على بعض التطبيقات المحددة لخاصية Range:
كيفية الرجوع إلى خلية واحدة باستخدام خاصية ورقة العمل
إذا كان كائن نطاق VBA Excel الذي تريد الإشارة إليه هو خلية واحدة ، فإن الصيغة هي ببساطة المدى  (" Cell "). 
على سبيل المثال ، إذا كنت ترغب في الإشارة إلى خلية واحدة ، مثل A1 ، اكتب  ("Range (" A1  
يمكننا اتخاذ خطوة أخرى إلى الأمام وإنشاء مرجع مؤهل بشكل كامل لهذه الخلية المفردة ، على افتراض أننا نواصل العمل مع الورقة 1 داخل Book1.xlsm:
("Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1
لاحظ:
لا يوجد شيء مثل كائن الخلية. 
الخلية ليست كائن في حد ذاته. 
يتم احتواء الخلايا داخل كائن النطاق.
والخلايا هي خاصية. 
الخصائص هي الخصائص التي يمكنك استخدامها لوصف كائن.
يمكنك بالفعل استخدام هذه الخاصية (خلايا) للإشارة إلى نطاق. 
المثال أعلاه بتطبيق الخاصية Range إلى كائن ورقة عمل. 
بمعنى آخر ، فهو مثال على الخاصية Worksheet.Range.
لنلقِ الآن نظرة على ما يحدث إذا تم تطبيق خاصية Range على كائن Range:
كيفية الرجوع إلى خلية واحدة في العلاقة إلى نطاق آخر باستخدام خاصية Range.Range
لنفترض ، أنه بدلاً من تحديد مرجع مؤهل تمامًا كما هو موضح أعلاه ، يمكنك ببساطة 
استخدام كائن التحديد Selection على النحو التالي:
("Selection.Range("A1
علاوة على ذلك ، لنفترض أن التحديد الحالي هو نطاق الخلايا بين C3 و D5 (الخلايا C3 و C4 و C5 و D3 و D4 و D5) من ورقة عمل Excel النشطة. 
("Selection.Range("C3 : D5

كما يمكنك استخدام كائن التحديد لتحديد عده نطاقات كالتالي :

 Range("A1:B2", E4, G10:J25").Select

هناك بدائل لأغراض الإشارة إلى خلية معينة فيما يتعلق بنطاق. 
العنصر الرئيسي هو الخاصية Range.Offset 


كيفية الرجوع إلى كائن نطاق VBA باستخدام خاصية Range.Offset
في حالة الخاصية Range.Offset ، يكون الكائن Range الذي تم إرجاعه هو عدد محدد من الصفوف والأعمدة من نطاق محدد. 
يتيح لك الرجوع إلى خلية تمثل عددًا محددًا من الصفوف والأعمدة بعيدًا عن خلية أخرى.

بمعنى آخر ، يتم تحديد كائن نطاق الذي تم إرجاعه بواسطة العوامل التالية:

نطاق أساسي ، والذي سيكون أساس الإزاحة Offset .
عدد الصفوف التي سيتم من خلالها موازنة النطاق الأساسي.
عدد الأعمدة التي يتم من خلالها إزاحة النطاق الأساسي.

يعكس بناء جملة الخاصية Range.Offset هذه العناصر الثلاثة. 
بناء الجملة هذا هو
 (expression.Offset (Row_Offset ، Column_Offset

 حيث:

"expression" هو متغير يمثل كائن نطاق VBA.
"Row_Offset" هو عدد الصفوف التي سيتم من خلالها موازنة النطاق. يمكن أن تكون هذه القيمة إيجابية (يتم إجراء الإزاحة
                        لأسفل) أو سالبة (يتم إجراء الإزاحة إلى الأعلى).
"Column_Offset" هو عدد الأعمدة التي يجب أن يتم إزاحة النطاق عنها. في حالة القيم الموجبة ، يتم إجراء الإزاحة إلى اليمين. 

عند استخدام القيم السالبة ، يتم إجراء الإزاحة إلى اليسار.
يحمل كل من Row_Offset و Column_Offset الوسائط الإزاحة من الخلية العلوية اليسرى لكائن نطاق VBA الذي يمثله "expression".

الطريقة التي تعمل بها خاصية Offset تعني أنه لا يمكن تطبيقه إلا على كائن Range. 
وبعبارة أخرى ، لا توجد أي خاصية Worksheet.Offset. 
وهذا يعني أن هذه الخاصية هي بديل كبير ومهم .

لنلق نظرة على بعض الأمثلة حول كيفية استخدام الخاصية Range.Offset للإشارة إلى كائن نطاق VBA:

في أبسط الحالات ، يمكنك استخدام Range.Offset للإشارة إلى خلية واحدة كما يلي:

(Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1").Offset(1, 1

في هذه الحالة بالذات ، Visual Basic for Applications بإرجاع خلية يمثل صف واحد أدناه و 1 عمود إلى يمين الخلية A1. بمعنى آخر ، النطاق الأساسي هو الخلية A1.

ومع استخدام كائن التحديد تكون هكذا

Selection.OffSet(1, 1).Select

وعند استخدام خاصية التنشيط 

ActiveCell.Offset(1, 1).Select 


كيفية الرجوع إلى كائن نطاق VBA باستخدام خاصية Range.Item

سوف تستخدم هذه الخاصية من وقت لآخر.لذا يجب فهمها جيدا .
 ترجع الخاصية Range.Item كائن ، الكائن هو مجموعة.

في هذه الحالة بالذات ، يتم تحديد النطاق بالبدء بنطاق محدد معين. 
الخاصية Range.Item ثم يصل إلى خلية معينة في هذا النطاق ، استناداً إلى الوسائط التي تستخدمها.

يشبه بناء جملة الخاصية Range.Item إلى حد كبير خصائص الخصائص الأخرى التي يغطيها هذا الدرس التعليمي 

 (expression.Item (Row_Index، Column_Index

 في هذه الحالة ، يمثل "expression" متغيرًا يمثل كائن نطاق.

ومع ذلك ، لاحظ أنه في حالة الخاصية Range.Item ، أشير إلى "Row_Index" و "Column_Index". 
في حالة معظم الخصائص الأخرى المغطاة في هذا الدرس التعليمي VBA ، فإن الحجج (arguments ) تشير إلى أي من الأرقام (على سبيل المثال "Row_Number") أو أحرف (مثل "Column_Letter").

السبب فى أن الخاصية Range.Item تستخدم الفهرس هو من أجل تحديد كل من الصف والعمود لأن سلوك الوسيطة Row_Index مشابه جدًا لوسيطة Cell_Index في حالة استخدام الخاصية Cells.

دعونا نلقي نظرة فاحصة على هذه الوسيطة Row_Index. 
الخصائص الرئيسية لهذه الحجة هي التالية:

  1. مطلوب.
  2. يجب أن يكون رقمًا.
  3. يحدد الخلية التي يمكنك الوصول إليها ضمن النطاق المناسب.
لهذه الأغراض ، هناك خياران.
1: إذا كانت الوسيطة الوحيدة التي تستخدمها هي Row_Index ، فسيتم ترقيم الخلايا من اليسار إلى اليمين ومن أعلى لأسفل. أشرح ، بالتفصيل ، كيف يعمل هذا أعلاه.
2: إذا كنت تستخدم كل من Row_Index و Column_Index ، فإن Row_Index يحدد صف الخلية التي تدخل إليها ضمن النطاق المناسب.

الوسيطة الأخرى من الخاصية (Range.Item (Column_Index سلوك مختلفة قليلاً. فيما يلي خصائصه الرئيسية:

* اختياري.
* يمكن أن يكون رقمًا أو سلسلة.
   كنتيجة لهذه الخاصية ، يمكنك استخدام كل من رقم العمود أو حرف العمود (ملفوف في عروض الأسعار) للإشارة إلى عمود 
   معين. 
* يحدد عمود الخلية التي تدخل إليها ضمن النطاق المناسب.
   تعتبر كلا الوسيطتين "إزاحات نسبي". 
   لذلك ، يستخدم Visual Basic for Applications تلك الوسيطات لتحديد عدد الصفوف والأعمدة للانتقال بعيداً عن النطاق
   المحدد أصلاً.

عند تطبيقه على كائن نطاق ، فإن خاصية الخلايا ليست محدودة بعدد الخلايا في النطاق المحدد. 
بمعنى آخر ، يمكنك استخدام الخاصية Cells للإشارة إلى الخلايا خارج هذا النطاق. 
نفس الشيء يحدث مع الخاصية Range.Item.

على سبيل المثال ، الأسطر البرمجية التالية كافة ترجع الخلية A1 من الورقة 1 في Book1.xlsm:

(Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1:D10").Cells.Item(1

(Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range(“A1:D10”).Cells.Item(1, 1

("Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1:D10").Cells.Item(1, "A


إن الحصول على معرفة جيدة حول خاصية Range.Item مفيد لأغراض أخرى ، من بينها:

الحصول على فهم أفضل لممتلكات الخلية.
صياغة مراجع أفضل لكائنات نطاق VBA في Excel باستخدام خاصية الخلايا.




Developer MS Office VBA Application, Data Analyst, Designer And Developer of Blogger Templates, Microfinance, HR Specialist, leading businesses, Front End Web Developer.

More About

تعليقان (2)

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