اكسل - تغيير التاريخ تلقائيا

القضية

أنا أستخدم هذه الصيغة في ورقة العمل الخاصة بي:

  •  = IF (OR (A1 = 1 ، A1 = 2 ، A1 = 3) ، اليوم () ، "") 

المشكلة هي أنه عندما أقوم بفتح الورقة الخاصة بي في اليوم التالي ، تتغير جميع تواريخ الدخول إلى اليوم ، فأنا بحاجة إلى مقبلات اليوم السابق لتبقى كما هي والإدخال الجديد فقط لإظهار تاريخ اليوم ، يرجى المساعدة لأي شخص!

 الحالة أيام العلم الوصف الوظيفي التاريخ 1 16 مايو 2010 2 17 مايو 2010 1 20 مايو 2010 3 21 مايو 2010 

حل

إذا كانت القيمة في A1 سيتم إدخالها يدويًا ، فيمكنك استخدام الأحداث

للقيام بذلك

  • 1. اضغط ALT + F11 لبدء VBE
  • 2. اضغط CTRL + R لإظهار مستكشف المشروع
  • 3. انقر نقرًا مزدوجًا على الورقة حيث سيتم تغيير قيمة A1
  • 4. الصق هذا الرمز

 ورقة عمل فرعية خاصة (تغيير ByVal Target As Range) "إذا لم يتم تشغيل الحدث بواسطة العمود الأول (العمود A) ، فلا شيء يجب القيام به إذا كان (Target.Column 1) ، ثم Exit Sub" إذا لم يتم تشغيل الحدث في الصف 1 If (الهدف. الصف 1) ثم قم بإنهاء "تعطيل الأحداث" حتى لا ندخل في دورة الأحداث Application.EnableEvents = خطأ إذا كان الهدف = 1 أو الهدف = 2 أو الهدف = 3 ثم "صف واحد لأسفل ، وعمود واحد يمين Target.Offset (1 ، 1) = CDate (الآن) 'نفس الصف وعمود واحد إلى اليمين Target.Offset (0، 1) = "" Else "صف واحد لأسفل ، وعمود واحد إلى اليمين Target.Offset (1، 1) =" "" نفس الصف وعمود واحد إلى اليمين Target.Offset (0، 1) = CDate (Now) End إذا "انتهينا الآن ، يمكننا تمكين evetns مرة أخرى Application.EnableEvents = True End Sub 

لاحظ أن

بفضل rizvisa1 لهذه النصيحة في المنتدى.

المقال السابق المقالة القادمة

نصائح الأعلى