Cell , Range , Offset and more

vba,Cell , Range , Offset and more,mahmoud zaki elshrief,اكاديمة محمود زكى الشريف,محمود زكى الشريف
توضيحات ومقارنات مهمة

كيف يتم تسمية النطاق ؟
هناك طرق ثلاث لتسمية النطاق
الأولى :
 تحديد عدد من الخلايا بالماوس ثم الذهاب الى هذا المستطيل
 الذى يظهر به اسم الخلية ونقوم بكتابة اسم النطاق ثم نضغط
 على زر الادخال
الثانية :
Formules > Define Name > Name > Write The Name > Press OK
الثالثة :
Formules > Name manger >  New  > Write The Name > Press OK

ملاحظة :
اذا كان اسم النطاق مكون من كلمتين لا تستخدم المسافات اثناء تسمية النطاق وانت بداخل الشيت لأنه لن يقبل الاكسل المسافات ويمكن التعويض عن المسافة بوضع علامة مثل ( _ ) التي تسمى Under Scour .


الـ Select و الـ Active 
بكل بساطة الـ Select هو تحديد الخلية أي النقر على الخلية ، ولكن لم يتم تنشيطها في الـ Formula Bar شريط الصيغة.
أما الـ Active هو أيضا تحديد الخلية ولكن يجعلها في حالة تنشيط قابلة لإدخال قيم نصية أو قيم عددية ..الخ بداخلها ، أي تم تنشيطها في الـ Formula Bar شريط الصيغة  ، وقد يكون الـ Active واقع داخل نطاق الخلايا التي تم تحديدها بواسطة الـ Select أو خارجها .



'https://elshriefacademy.blogspot.com

Sub SelectActivate()

    Range("A1:D4").Select
    Range("B2").Activate

End Sub


مقارنة للتوضيح بين كلا من  : Cell , Range , Offset
يبين الجدول التالي نظرة عامة على هذه الخصائص الثلاث

أولا : Cell
تأخذ الخاصية Cells الوسيطتين ( رقم الصف ورقم العمود ) ، وهذا يعني أنه يمكنك استخدام رقم لتعيين الصف والعمود في وقت التشغيل ، وما يأتي بين القوسين هو خلية واحدة فقط.

مثال النتيجية
(Cells(1,1 A1
(Cells(10,1 A10
(Cells(2,5 E2
((Range(Cells(1,1),Cells(3,3 استخدام الـ Cells في تحديد نطاق
Range of cells A1 , C3


ثانيا : Range
قد تكون خلية واحدة أو عدة خلايا ، وتكتب بشكلها العادي أي شكل عنوان الخلية .


مثال النتيجية
("Range("A1 A1
("Range("A1:C5 Range Frome A1 To C5
("Range("A1,C1,E1,G1 عدة خلايا متفرقة A1,C1,E1,G1
("Range("A12:D20 C15:F20 نطاقين بينهم تقاطع A12:D20 C15:F20
("Range("my_range تحديد نطاق تم تسميته باسم my_range

ثالثا : Offset
هي الإزاحة وتحسب عددًا من الخلايا من النطاق الأصلي أو الخلية النشطة يستغرق معلمتين
 ( إزاحة الصف وإزاحة العمود).


مثال النتيجية
(Range("A1").Offset(1,0 A2
(Range("A1").Offset(0,1 B1
(Range("B2:C3").Offset(2,2 Range D4:E5


Sheet

هذه الكلمة نجدها مرتين بداخل نافذة مستكشف المشروعات
التى بدون أقواس هى رمز ورقة العمل ويطلق عليها Code Name               
الثانية التى تقع بين أقواس نصف دائرية هى اسم ورقة العمل WorkSheet Name
اذا استخدمنا اسم رمز ورقة العمل في الكود ستظل الشفرة البرمجية 
تعمل حتى لو قمنا بتغيير اسم ورقة العمل ويمكن التعويض عنها بالشفرة البرمجية برقمها .



Worksheets("Sheet1").Range("A2").Value = 75 
Sheets("Sheet1").Range("B2").Value = 75 
Sheets(2).Cells(3,3).Text = "some text"



اذا تم استخدام اسم ورقة العمل في الشفرة البرمجية ، فلو قمنا بتغيير اسم ورقة العمل يجب أن يتم تغييرها في الشفرة البرمجية ، لأنه في حالة عدم تغييرها بالشفرة لن يعمل الكود 


أمور يجب مراعاتهاعند ادخال بيانات بورقة العمل 

من الجيد أن يتم تأهيل ورقة العمل دائمًا ، سواء كانت ورقة العمل النشطة أو ورقة عمل مختلفة وذلك بالإشارة اليها قبل الشروع فى كتابة التعليمات الخاصة بالادخال.
هناك فرق بين "أوراق العمل =  Worksheets" ، ومجموعة "جداول البيانات =  Sheets collection "

فتتضمن مجموعة "جداول البيانات" جميع الأوراق ، بما في ذلك أوراق المخطط.



Worksheets("Sheet1").Range("C2").Value = 1980 
Sheets("Sheet1").Range("C3").Value = 1980 
Sheets(2).Cells(4,3).Text = "Mahmoud Zaki Elshrief"


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



ThisWorkbook.Worksheets("Sheet1").Range("A1")


مسح محتويات نطاق 
إليك عده أمثلة لمسح محتويات نطاق ، يمثل كل سطر برمجي مما يلي طريقة مختلفة (( مسح البيانات بدون مسح المعادلات إن وجدت )) بإستخدام (ClearContents):




Range("my_range").ClearContents
ActiveSheet.Cells(2,3).ClearContents 
Range ( "A1" ).ClearContents
Rows("5:8").ClearContents
Columns("D:F").ClearContents
Range("A1,B1,C1,D1").ClearContents
Cells(5,2).ClearContents
Range("A1:D4").ClearContents
Range("A12:D20 C15:F20").ClearContents
Sheets("sheet1").Range("B8,D8").ClearContents

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

More About

إرسال تعليق