في كثير من الأحيان ، تنشأ حالة عندما نحتاج إلى تلخيص (تجميع) عدة قيم تم إدخالها بالتتابع في خلية واحدة:
أولئك. إذا أدخلت ، على سبيل المثال ، الرقم 1 في الخلية A5 ، فيجب أن يظهر الرقم 1 في B15. إذا أدخلت الرقم 1 في A7 ، فيجب أن يظهر الرقم 1 في الخلية B22 وهكذا. بشكل عام ، ما يطلق عليه المحاسبون (وليس فقطهم) المجموع التراكمي.
يمكنك تنفيذ مجمع خلايا التخزين هذا باستخدام وحدة ماكرو بسيطة. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة حيث توجد الخلايا A1 و B1 وحدد من قائمة السياق النص المصدر (مصدر الرمز). في نافذة محرر Visual Basic التي تفتح ، انسخ والصق رمز الماكرو البسيط:
Private Sub Worksheet_Change (ByVal Target As Excel.Range) With Target If .Address (False، False) = "A1" ثم If IsNumeric (.Value) ثم Application.EnableEvents = False Range ("A2"). Value = Range (" A2 "). Value + .Value Application.EnableEvents = True End If End If End With End Sub
بالطبع ، يمكن استبدال عناوين الخلايا A1 و A2 بعناوينك.
إذا كنت بحاجة إلى تتبع إدخال البيانات وتلخيص ليس الخلايا الفردية ، ولكن النطاقات بأكملها ، فسيتعين عليك تغيير الماكرو قليلاً:
ورقة عمل فرعية خاصة (ByVal Target As Excel.Range) إذا لم تتقاطع (الهدف ، النطاق ("A1: A10")) لا شيء إذا إذا كان رقمًا (Target.Value) ثم Application.EnableEvents = False Target.Offset (0، 1) .Value = Target.Offset (0، 1) .Value + Target.Value Application.EnableEvents = True End If End If End Sub
من المفترض أن يتم إدخال البيانات في خلايا النطاق A1: A10 ، ويتم جمع الأرقام التي تم إدخالها في العمود المجاور على اليمين. إذا لم تكن متجاورة في حالتك ، فقم بزيادة التحول إلى اليمين في عامل الأوفست - استبدل 1 برقم أكبر.
- ما هي وحدات الماكرو ، وأين يتم إدراج رمز الماكرو في VBA ، وكيفية استخدامها؟