Note: The other languages of the website are Google-translated. Back to English

كيفية تسجيل التاريخ والوقت تلقائيًا عند تغيير الخلية؟

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

سجل التاريخ والوقت تلقائيًا عندما تتغير الخلية برمز VBA

علامة تبويب Office تمكن من التحرير والتصفح المبوب في المكتب ، واجعل عملك أسهل بكثير ...
Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪
  • إعادة استخدام أي شيء: أضف الصيغ والمخططات الأكثر استخدامًا أو تعقيدًا وأي شيء آخر إلى مفضلاتك ، وأعد استخدامها بسرعة في المستقبل.
  • أكثر من 20 ميزة نصية: استخراج رقم من سلسلة نصية ؛ استخراج أو إزالة جزء من النصوص ؛ تحويل الأرقام والعملات إلى الكلمات الإنجليزية.
  • أدوات الدمج: مصنفات وأوراق متعددة في واحد ؛ دمج خلايا / صفوف / أعمدة متعددة دون فقد البيانات ؛ دمج الصفوف المكررة والمجموع.
  • أدوات الانقسام: تقسيم البيانات إلى أوراق متعددة بناءً على القيمة ؛ مصنف واحد لملفات Excel أو PDF أو CSV متعددة ؛ عمود واحد إلى أعمدة متعددة.
  • لصق التخطي صفوف مخفية / مصفاة العد والمجموع حسب لون الخلفية؛ إرسال رسائل بريد إلكتروني مخصصة إلى مستلمين متعددين بشكل مجمع.
  • مرشح سوبر: إنشاء مخططات تصفية متقدمة وتطبيقها على أي أوراق ؛ تصنيف حسب: حسب الأسبوع واليوم والتكرار والمزيد ؛ تصفية بواسطة bold، formulas، comment ...
  • أكثر من 300 ميزة قوية ؛ يعمل مع Office 2007-2021 و 365 ؛ يدعم جميع اللغات ؛ سهولة النشر في مؤسستك أو مؤسستك.

السهم الأزرق الحق فقاعة سجل التاريخ والوقت تلقائيًا عندما تتغير الخلية برمز VBA

على سبيل المثال ، لدي مجموعة من القيم ، والآن ، عندما أقوم بتغيير أو كتابة قيم جديدة في العمود B ، أريد أن يتم تسجيل التاريخ والوقت الحاليين في العمود C تلقائيًا كما هو موضح في لقطة الشاشة التالية:

تغييرات قيمة المستند 1

يمكنك إنهاء هذه المهمة باتباع التعليمات البرمجية لـ VBA. يرجى القيام بذلك على النحو التالي:

1. اضغط باستمرار على ALT + F11 مفاتيح لفتح نافذة ميكروسوفت فيسوال باسيك للتطبيقات.

2. ثم اختر ورقة العمل المستخدمة من اليسار مستكشف المشروع، انقر فوقه نقرًا مزدوجًا لفتح ملف وحدة، ثم انسخ والصق رمز فبا التالي في الوحدة النمطية الفارغة:

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

Private Sub Worksheet_Change(ByVal Target As Range)
'Update 20140722
Dim WorkRng As Range
Dim Rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("B:B"), Target)
xOffsetColumn = 1
If Not WorkRng Is Nothing Then
    Application.EnableEvents = False
    For Each Rng In WorkRng
        If Not VBA.IsEmpty(Rng.Value) Then
            Rng.Offset(0, xOffsetColumn).Value = Now
            Rng.Offset(0, xOffsetColumn).NumberFormat = "dd-mm-yyyy, hh:mm:ss"
        Else
            Rng.Offset(0, xOffsetColumn).ClearContents
        End If
    Next
    Application.EnableEvents = True
End If
End Sub

تغييرات قيمة المستند 1

3. ثم احفظ وأغلق هذا الرمز للعودة إلى ورقة العمل ، والآن عندما تقوم بتغيير قيمة الخلية أو كتابة بيانات جديدة في العمود B ، سيتم تسجيل التاريخ والوقت تلقائيًا في العمود C.

الملاحظات:

1. في الكود أعلاه ، يمكنك تعديل "ب: ب"إلى أي عمود آخر تريد تغيير قيم الخلية في هذا البرنامج النصي: تعيين WorkRng = Intersect (Application.ActiveSheet.Range ("B: B") ، الهدف).

2. مع هذا xOffsetColumn = 1 البرنامج النصي ، يمكنك إدراج التاريخ والوقت وتحديثهما في العمود الأول بجوار عمود القيمة المتغيرة ، ويمكنك تغيير الرقم 1 إلى أرقام أخرى ، مثل 2,3,4,5،XNUMX،XNUMX،XNUMX ... وهذا يعني أنه سيتم إدراج التاريخ العمود الثاني أو الثالث أو الرابع أو الخامس بجانب عمود القيم المتغيرة.

3. عند حذف قيمة من العمود الذي تم تغييره ، ستتم إزالة التاريخ والوقت أيضًا.


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (108)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيف تكتب الرمز للقيام بذلك عدة مرات على صفحة واحدة على سبيل المثال. النص في العمود B ، والتاريخ في C والنص في D ، والتاريخ في E؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[اقتباس] كيف تكتب الرمز للقيام بذلك عدة مرات على صفحة واحدة على سبيل المثال. النص في العمود B ، والتاريخ في C والنص في D ، والتاريخ في E؟بواسطة هيلاري[/ quote] أعلم أن هذا قديم ولكن الطريقة الطويلة والسهلة هي نسخ التصريحات المتغيرة وإنشاء متغيرات جديدة (مثل WorkRng1 و Rng1). يجب عليك أيضًا نسخ عبارة "if" وتغيير المتغيرات إلى أسماء المتغيرات الجديدة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[اقتباس] كيف تكتب الرمز للقيام بذلك عدة مرات على صفحة واحدة على سبيل المثال. النص في العمود B ، والتاريخ في C والنص في D ، والتاريخ في E؟بواسطة هيلاري[/ quote] هذا هو الكود: Private Sub Worksheet_Change (ByVal Target As Range) 'Update 20140722 Dim WorkRng As Range Dim Rng As Range Dim xOffsetColumn As Integer' قم بتغيير النطاق لتحديد العمود الذي تقوم بتحديثه ، أي ("A: A ") أو (" B: B ") تعيين WorkRng = Intersect (Application.ActiveSheet.Range (" E: E ") ، الهدف) xOffsetColumn = 1 'للطابع الزمني الثاني' إنشاء أسماء متغيرات جديدة ، مثل WorkRng1 ، Rng1 ، إلخ. Dim WorkRng1 كنطاق Dim Rng1 مثل Range Dim xOffsetColumn1 كمجموعة صحيحة WorkRng1 = Intersect (Application.ActiveSheet.Range ("G: G") ، Target) xOffsetColumn1 = 1 'لأول طابع زمني إذا لم يكن WorkRng شيئًا ثم Application.EnableEvents = False For كل Rng In WorkRng إذا لم يكن VBA.IsEmpty (Rng.Value) ثم Rng.Offset (0، xOffsetColumn) .Value = Now Rng.Offset (0، xOffsetColumn) .NumberFormat = "mm / dd / yyyy "Else Rng.Offset (0، xOffsetColumn) .ClearContents End If Next Application.EnableEvents = True End If 'بالنسبة للطابع الزمني الثاني If Not WorkRng1 لا شيء ثم التطبيق.EnableEve nts = False لكل Rng1 في WorkRng1 إذا لم يكن VBA.IsEmpty (Rng1.Value) ثم Rng1.Offset (0، xOffsetColumn1) .Value = Now Rng1.Offset (0، xOffsetColumn1) .NumberFormat = "mm / dd / yyyy" آخر Rng1.Offset (0، xOffsetColumn1) .ClearContents End If Next Application.EnableEvents = True End If End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ماذا لو أردت القيام بذلك لمجموعة من الأعمدة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
قم بتغيير النطاق (B: B) على النحو التالي: (10:20) للأعمدة من 10 إلى 20 (D5: D40) للأعمدة من 5 إلى 40 في الصف D ، آمل أن يكون ذلك مفيدًا.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عذرًا ، لقد قمت بتبديل الأعمدة بالصفوف ، لكنها لا تزال تعمل. (D: P) من العمود D إلى P (D5: D5) من العمود D إلى P في الصف 5
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عندما أحفظه يعمل ولكن عند إعادة فتحه لا يعمل
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[اقتباس] عندما أحفظه يعمل ولكن عند إعادة فتحه لا يعملبواسطة عارف[/ quote] نفس مشكلة عارف ... لقد نجحت في علاج منذ نصف ساعة ، والآن لا ... أيضًا ، أردت فقط الوقت وليس التاريخ والوقت ، لذلك قمت بتحرير ".NumberFormat" ليكون فقط hh: mm: ss ، حفظها ، اختبارها ... لا يختلف ... ما زلت تضع التاريخ والوقت ...؟ فتحت VB مرة أخرى ، وكتبت في بعض النصوص المحددة ، وحفظها مرة أخرى ، ولكن لم يكن جيدًا ، ثم فعلت ذلك مرة أخرى ، وكان التنسيق يعمل كما قيل وفجأة حصلت على الوقت. غريب جدًا لطالما اعتقدت أن برنامج إكسيل مسكون ، منذ أن استخدمت وظيفة البحث لأول مرة ، أبحث عن قيمة في خلية يمكنني رؤيتها بأم عيني ، لكن Excel أصر على أنها غير موجودة !؟ أي خبراء إكسل أو طاردي الأرواح الشريرة يمكن أن يساعدوا؟ لماذا يتجاهل VB الخاص بي وليس الطابع الزمني كما فعلت ...؟ شكرا: ابكي:
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[اقتباس] كيف تكتب الرمز للقيام بذلك عدة مرات على صفحة واحدة على سبيل المثال. النص في العمود B ، والتاريخ في C والنص في D ، والتاريخ في E؟بواسطة هيلاري[/ اقتباس] ما هو الجواب على الاقتباس
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ماذا لو كنت أرغب في تشغيل هذا ولكني لست على ورقة نشطة ، لذا قم بالتشغيل في الخلفية والتحديث كلما كان هناك إدخال في العمود B؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ماذا لو كان العمود الذي يؤثر على عمود الطابع الزمني هو مجموع عدة أعمدة أخرى؟ على سبيل المثال ... العمود H = Sum (E + F + G) وأود الحصول على طابع زمني يتم إجراؤه في العمود I في كل مرة يتم فيها تغيير العمود H ، أو في جوهره عندما يتم تغيير الأعمدة E أو F أو G . يمكنك الرجاء المساعدة؟؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
انا بحاجة الى مساعدة من فضلك! أحاول الحصول على طابع زمني في كل مرة يتم فيها تغيير إحدى الخلايا الثلاث. أود أن أفعل هذا بشكل مثالي عندما يتم تغيير مجموع هذه الخلايا. علي سبيل المثال. سيتم تغيير الخلايا E و F و G وستكون الخلية H هي مجموع تلك الخلايا الثلاث. عندما يتم تغيير الخلية H ، أود أن تكون الخلية I مختومة بالوقت. هل هذا ممكن؟؟ شكرا جزيلا لك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أحاول تشغيل الكود أعلاه ؛ ومع ذلك ، فإن الخلية التي تريد تغييرها مرتبطة بخانة اختيار وبالتالي فهي إما "TRUE" أو "FALSE". لسبب ما ، لن يعمل الرمز عندما تتغير الخلية. ومع ذلك ، إذا قمت بإدخال "نعم" يدويًا ، فإن الكود يعمل بشكل جيد. هل تعرف أي حل بديل لهذه المشكلة؟ شكرًا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل من الممكن القيام بذلك من أجل البيانات التاريخية؟ إذا أجريت تغييرات على خلية بالأمس أو قبل شهر ، فهل يمكنني استخدام نموذج من هذا الرمز لاسترداد تلك التواريخ؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل هناك طريقة للطابع الزمني بناءً على تغيير معين؟ على سبيل المثال ، لدي جدول بيانات به عمود من خيارات القائمة المنسدلة بما في ذلك الفراغ و "موافق" و "التصرف". عند اكتمال المهمة ، يتم استخدام القائمة المنسدلة يدويًا لتحديد "موافق". أرغب في ربط طابع التاريخ عند تحديد "موافق" ، ولكن ليس عند تحديد "فعل". يتم استخدام خيار "Act" في القائمة المنسدلة عندما تكون المهمة قد تجاوزت موعد استحقاقها ، لكنني في الحقيقة أحاول فقط تتبع وقت اكتمال أحد العناصر. هل هناك طريقة لإنجاز هذا مع الكود أعلاه؟ شكرًا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل كنت قادرا على حل هذه؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إنه سؤال جيد جدا. هل قمت بفرزها ، هل يمكنك مشاركة الطريق من فضلك؟
شكر
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يمكنني تغيير النطاق ليكون ("A: Q") ولكني بحاجة إلى التاريخ والوقت للذهاب إلى "S" إذا تم تغيير / إزالة البيانات الموجودة في أي خلية AQ. أنا VBA تحدى. أي مساعدة يحظى بتقدير كبير!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
آسف ، لقد نشرت سؤالاً للتو وأحتاج إلى إجابة لهذا ... لا بد أني فاتني هذا التعليق ... آمل أن يتمكن أحدهم من المساعدة!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيف يمكنني تغييره بحيث يتغير تاريخ الخلية المجاورة فقط؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيف يمكنني الحصول على الطابع الزمني للتسجيل في خلية معينة ، بدلاً من الخلية المجاورة للخلية التي تم تغييرها. أحاول الحصول على صف من الخلايا مختومًا بالوقت عند حدوث تغيير في أي من تلك الخلايا ، أود تسجيل الطابع الزمني في خلية واحدة محددة ... هل يمكن لأي شخص المساعدة في ذلك؟ شكرًا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، شكرًا لك على هذا لأنه أمر رائع بالنسبة لقابلية تدقيق البنك الدولي. هل هناك طريقة لتعديل هذا بحيث يتم تسجيل التاريخ / الوقت في مكان ما على البنك الدولي كلما تمت إضافة تعليق أو تعديله؟ أعلم أن هذا سؤال عام ، لكني لست متأكدًا مما إذا كان ذلك ممكنًا (للأسف بالنسبة لـ MS 2010 ، لا تحتوي خاصية .comment على خاصية التاريخ لتحديد وقت إدخالها. مايك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيف يمكنني التهيئة لقراءة العمود A: A وإعطاء الطابع الزمني في B: B فقط عند إدخال رقم مكون من 14 رقمًا فيه؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أحتاج إلى بعض المساعدة بشأن ترميز VBA. أقوم بإنشاء ورقة انتشار بالحالات التي سيتم تخصيصها للأشخاص ولديها حالة حالة. سيكون المحال إليه في العمود H وأحتاج إلى طابع تاريخ في العمود الأول عندما يتم تحديث الخلية في العمود H أو تغييرها باسم. وبالمثل ، سيكون لدي حالة حالة في العمود J وسأحتاج إلى طابع تاريخ في العمود K عند إدخال الحالة أو تغييرها. أيضًا عندما يكون هناك اسم أو حالة غير متنازل له ، أحتاج إلى أن يكون طابع التاريخ في العمود I و K فارغًا. سيكون موضع تقدير أي مساعدة. شكرًا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لقد وجدت هذا الرمز في مكان آخر وقمت بتعديله لاستخدامي. إذا تم القيام بذلك بشكل صحيح ، فلا داعي للقلق بشأن إدخال وظيفة في خلية أو تغيير الملف إلى تاريخ ذلك اليوم في كل مرة يتم فتحه فيها. - افتح Excel - اضغط على "Alt + F11" - انقر نقرًا مزدوجًا فوق ورقة العمل التي تريد تطبيق التغيير عليها (المدرجة على اليسار) - انسخ / الصق الكود أدناه - اضبط إدخال النطاق (_: _) للتوافق إلى العمود الذي ستقوم بتحديثه - اضبط إدخال الإزاحة (0 ، _) ليتوافق مع العمود الذي تريد عرض التاريخ فيه (في الإصدار أدناه ، أقوم بإجراء تحديثات على العمود D وأريد عرض التاريخ في العمود F ، ومن هنا جاء إدخال الإدخال "2" لعمودين أعلى من العمود D) - اضغط على حفظ - كرر الخطوات أعلاه إذا كانت هناك أوراق عمل أخرى في المصنف تحتاج إلى نفس الرمز - قد تضطر إلى تغيير تنسيق الأرقام للعمود الذي يعرض التاريخ إلى "عام" وزيادة عرض العمود إذا كان يعرض "####" بعد إجراء إدخال محدث نسخ / لصق الرمز أدناه: ____________________________________________________________ Private Sub Worksheet_Change (ByVal Target As Range) إذا تقاطع (الهدف ، النطاق (" D: D ")) لا شيء ثم الخروج من الهدف الفرعي. الإزاحة (2 ، 0) = تاريخ الانتهاء الفرعي ___ _________________________________________________________ حظا طيبا وفقك الله...
تم تصغير هذا التعليق بواسطة المشرف على الموقع
سيظهر هذا الرمز التاريخ عند النقر فوقه ، فهل من الممكن إظهار التاريخ فقط عند تغيير المحتوى في الخلية ، إذا تم النقر فقط ولم يتغير شيء ، ثم لا يظهر التاريخ أو يبقى التاريخ الذي تم إدخاله مسبقًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عندما أقوم بالتسجيل في الماكرو ، يتم تغيير صيغة vloocup ، فكيف يمكنني القيام بذلك التاريخ يتغير تلقائيًا إلى يوم واحد مثل 1/21/07 ثم في اليوم التالي تم تغييره إلى 2017/22/07 تلقائيًا ، الرجاء المشاركة تلقائيًا إذا كان هناك أي كود vba.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
استبدل هذا الخط
Rng.Offset (0، xOffsetColumn). القيمة = الآن

إلى
Rng.Offset (0، xOffsetColumn). القيمة = الآن + 1
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا على الرمز لك! بالضبط ما كنت أبحث عنه!!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا لك على مساعدتك :-)
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL