Vba: كيفية تشغيل ماكرو عندما تتغير قيمة الخلية


يمكنك استخدام بناء الجملة التالي في VBA لتشغيل ماكرو عندما تتغير قيمة خلية معينة:

 Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = " $A$1 " Then
        Call MultiplyMacro
    End If
End Sub

سيؤدي هذا المثال بالتحديد إلى تشغيل الماكرو المسمى MultiplyMacro عندما تتغير قيمة الخلية A1 .

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: قم بتشغيل ماكرو عندما تتغير قيمة الخلية باستخدام VBA

لنفترض أننا أنشأنا الماكرو التالي المسمى MultiplyMacro الذي يقوم بضرب القيم في الخلايا A1 و B1 ويعرض النتائج في الخلية C1 :

 SubMultiplyMacro ()
    Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
End Sub

على سبيل المثال، لنفترض أن لدينا القيمة 12 في الخلية A1 والقيمة 3 في الخلية B1 .

إذا قمنا بتشغيل هذا الماكرو، فسنحصل على النتيجة التالية:

لنفترض الآن أننا نريد تشغيل هذا الماكرو تلقائيًا كلما تغيرت قيمة الخلية A1 .

للقيام بذلك، يمكننا النقر بزر الماوس الأيمن على اسم الورقة ثم النقر فوق “إظهار الرمز” :

في نافذة تحرير الكود التي تظهر، يمكنك لصق الكود التالي:

 Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = " $A$1 " Then
        Call MultiplyMacro
    End If
End Sub

توضح لقطة الشاشة التالية كيفية القيام بذلك عمليًا:

يمكننا بعد ذلك إغلاق محرر VB.

الآن، عندما نقوم بتغيير القيمة في الخلية A1 ، سيتم تشغيل الماكرو المسمى MultiplyMacro تلقائيًا وإجراء الضرب باستخدام القيمة الجديدة في الخلية A1 .

على سبيل المثال، لنفترض أننا قمنا بتغيير قيمة الخلية A1 إلى 10 . بمجرد تغيير القيمة والضغط على Enter ، سيتم تشغيل الماكرو:

يقوم الماكرو بضرب 10 في 3 ويعرض النتيجة في الخلية C2 .

ملاحظة : إذا كنت تريد تشغيل الماكرو عندما تتغير خلية في نطاق معين، يمكنك استخدام بناء الجملة التالي:

 Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range(" A1:B1 ")) Is Nothing Then
        Call MultiplyMacro
    End If
End Sub

سيؤدي هذا إلى تشغيل الماكرو المسمى MultiplyMacro في حالة تغيير أي خلية في النطاق A1:B1 .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:

فبا: كيفية حساب عدد الأوراق في المصنف
فبا: كيفية استخراج البيانات من مصنف آخر
فبا: كيفية إضافة أوراق جديدة

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *