كيفية إدخال قيمة في خلية باستخدام 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
عرض في msgbox

في الكود أعلاه، سيأخذ مربع الرسالة القيمة من الخلية A1 ويعرضها للمستخدم.

قيمة أخذ قيمة msgbox

تغيير قيمة الخلية

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

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)

اضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *