اكسل - تغيير التاريخ تلقائيا
القضية
أنا أستخدم هذه الصيغة في ورقة العمل الخاصة بي:
= 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 لهذه النصيحة في المنتدى.