كيفية إدخال قيمة في خلية باستخدام vba؟
الملاحظات الرئيسية
- يمكن استخدام خاصية القيمة في كلا الاتجاهين (يمكنك قراءة وكتابة قيمة من خلية).
- يمكنك الرجوع إلى خلية باستخدام الخلايا وكائن النطاق لتعيين قيمة خلية (للحصول عليها وتحريرها أيضًا).
تعيين قيمة الخلية
لتعيين قيمة خلية، تحتاج إلى استخدام خاصية “القيمة”، ثم تحتاج إلى تعيين القيمة التي تريد تعيينها. لقد استخدمت هنا بعض الأمثلة لمساعدتك على فهم ذلك.
1. أدخل قيمة في الخلية
لنفترض أنك بحاجة إلى إدخال القيمة “تم” في الخلية A1. في هذه الحالة سيكون الكود كما يلي:
Range("A1").Value = "Done"
كما ترون، قمت أولاً بتعيين عنوان الخلية التي أريد إضافة القيمة إليها، ثم خاصية القيمة. في النهاية، قمت بتعيين القيمة “تم” باستخدام علامة المساواة “=” بين علامتي اقتباس مزدوجتين.
يمكنك أيضًا استخدام خاصية “الخلايا”، تمامًا مثل التعليمة البرمجية التالية.
Cells(1, 1).Value = "Done"
يشير الرمز أعلاه أيضًا إلى الخلية A1.
وبصرف النظر عن هذا، هناك طريقة أخرى يمكنك استخدامها وهي عدم استخدام خاصية القيمة عن طريق تعيين القيمة مباشرة للخلية.
Cells(1, 1) = "Done"
ولكن يوصى باستخدام خاصية القيمة لإدخال قيمة في الخلية.
لنفترض الآن أنك تريد إدخال رقم في خلية. في هذه الحالة، لا تحتاج إلى استخدام علامات الاقتباس المزدوجة. يمكنك كتابة الكود على النحو التالي.
Range("A1") = 99
يمكنك أيضًا التاريخ والآن ( وظائف VBA ) لإدخال تاريخ أو طابع زمني في خلية باستخدام كود VBA.
Range("A1").Value = Date Range("A2").Value = Now
وإذا كنت تريد إدخال قيمة في الخلية النشطة، فسيكون الرمز الذي تحتاجه كما يلي:
ActiveCell.Value = Date
2. استخدام صندوق الإدخال
إذا كنت تريد من المستخدم تحديد قيمة لإدخالها في خلية، فيمكنك استخدام مربع الإدخال. لنفترض أنك تريد إدخال القيمة في الخلية A1، فسيبدو الرمز كما يلي:
Range("A1").Value = _ InputBox(Prompt:="Type the value you want enter in A1.")
في الكود أعلاه، يتم تعيين قيمة الخلية A1 للقيمة التي يتم إرجاعها بواسطة مربع الإدخال الذي يقوم بإرجاع القيمة التي أدخلها المستخدم.
3. من خلية أخرى
يمكنك أيضًا تعيين قيمة الخلية باستخدام قيمة خلية أخرى. لنفترض أنك تريد إضافة قيمة إلى الخلية A1 من الخلية B1، سيكون الرمز:
Range("A1") = Range("B1").Value
يمكنك أيضًا الرجوع إلى الخلية B1 دون استخدام خاصية القيمة.
Range("A1") = Range("B1")
4. قم بتعيين القيمة في نطاق كامل
تخيل أنك تريد إدخال قيم في خلايا متعددة أو نطاق من الخلايا بدلاً من خلية واحدة، في هذه الحالة تحتاج إلى كتابة التعليمات البرمجية كما يلي:
Range("A1:A10").Value = Date Range("B1, B10").Value = Now
في السطر الأول من التعليمات البرمجية لديك نطاق كامل من الخلية A1 إلى A10، وفي السطر الثاني يوجد خليتين B1 وB10.
الحصول على قيمة الخلية
كما قلت، يمكنك استخدام نفس خاصية القيمة للحصول على قيمة الخلية.
1. احصل على قيمة ActiveCell
لنفترض أنك تريد الحصول على قيمة الخلية النشطة، في هذه الحالة تحتاج إلى استخدام الكود التالي.
ActiveCell.Value = Range("A1")
في الكود أعلاه، استخدمت خاصية القيمة مع الخلية النشطة ثم قمت بتعيين هذه القيمة للخلية A1.
2. تعيين لمتغير
يمكنك أيضًا الحصول على قيمة من خلية ثم تعيينها لمتغير .
الآن في الكود أعلاه لديك المتغير “i” الذي يحتوي على التاريخ كنوع بيانات . في السطر الثاني من الكود، يتم تعيين قيمة الخلية A1 للمتغير.
3. عرض في MsgBox
تخيل الآن أنك تريد عرض قيمة الخلية A1 باستخدام مربع رسالة . في هذه الحالة سيكون الكود كما هو موضح أدناه.
MsgBox Range("A1").Value
في الكود أعلاه، سيأخذ مربع الرسالة القيمة من الخلية A1 ويعرضها للمستخدم.
تغيير قيمة الخلية
يمكنك أيضًا إجراء تغييرات على قيمة الخلية، وقد قمت هنا بمشاركة بعض الأمثلة التي يمكن أن تساعدك على فهم ذلك.
1. أضف رقمًا إلى رقم موجود
لنفترض أنك إذا كنت تريد إضافة رقم إلى الرقم الموجود في الخلية A1، فيمكنك استخدام الكود التالي.
Range("A1").Value = Range("A1").Value + 1
يعين الكود أعلاه قيمة للخلية A1 عن طريق أخذ قيمة الخلية A1 نفسها وإضافة قيمة إليها. ولكن يمكنك أيضًا استخدام VBA IF THEN ELSE لكتابة شرط لتغييره فقط عندما يكون هناك رقم في الخلية .
If IsNumeric(Range("A1").Value) Then Range("A1").Value = Range("A1").Value + 1 End If
2. احذف الحرف الأول من الخلية
الآن يزيل التعليمة البرمجية التالية الحرف الأول من قيمة الخلية ويعين بقية القيمة للخلية.
Range("A1").Value = Right(Range("A1").Value, Len(Range("A1").Value) - 1)