KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

كيف يمكن تذكُّر أو حفظ القيمة السابقة لخلية تم تعديلها في Excel؟

المؤلفSiluviaتاريخ التعديل

عند تعديل خلية في Excel، تُستبدل القيمة السابقة فورًا ولا تظهر مجددًا إلا إذا قمت بالتراجع. فإذا كنت بحاجة إلى الاحتفاظ بتلك القيمة—لمقارنتها أو مراجعتها أو التراجع عنها—فأمامك خياران: إما التقاطها تلقائيًا عبر روتين VBA قصير يُسجّل القيمة السابقة في عمود مساعد قبل كل تعديل، أو مراجعة التغييرات باستخدام أدوات Microsoft 365 (مثل «إظهار التغييرات» و«محفوظات الإصدار») شريطة أن يكون الملف محفوظًا على OneDrive أو SharePoint. ويشرح هذا البرنامج التعليمي الطريقتين لتتمكن من اختيار الأنسب لسير عملك ومتطلبات الحوكمة لديك.


حفظ القيمة السابقة للخلية باستخدام كود VBA في Excel

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

لقطة شاشة لجدول إكسل تُظهر العمود الهدف لحفظ قيم الخلايا السابقة

السيناريو الرئيسي:بالنسبة لأوراق العمل التي تراجع فيها التغييرات أو تُوحِّدها بشكل متكرر—مثل الجرد أو السجلات أو التتبع المالي—فإن إبقاء القيم السابقة مرئية يوفّر الوقت ويقلل من فقدان البيانات العرضي.

لبدء الاستخدام، افتح ورقة العمل التي ترغب في تسجيل القيم السابقة بها، ثم اتبع الخطوات التالية:

1. انقر بزر الماوس الأيمن على تبويب الورقة، ثم اختر «عرض الكود» من القائمة المختصرة. وسيؤدي ذلك إلى فتح محرر Visual Basic for Applications (VBA). انظر لقطة الشاشة:

لقطة شاشة تُظهر خيار عرض الرمز (View Code) في قائمة النقر بزر الماوس الأيمن على لسان ورقة إكسل

2. في نافذة «Microsoft Visual Basic for Applications»، الصق كود VBA التالي في نافذة الكود. سيتيح لك هذا الماكرو حفظ القيمة السابقة للخلايا في العمود المستهدف ضمن عمود آخر.

قبل تشغيل هذا النص البرمجي، تأكد من تعديل مراجع الأعمدة المستهدفة في الكود. ففي هذه الأمثلة، يشير «C:C» إلى العمود الذي يتم تتبع التغييرات فيه، بينما يتوافق الرقم "7" مع العمود G المخصص لتخزين القيم السابقة. ويمكنك تخصيص هذه المراجع بسهولة لتتناسب مع تخطيط جدولك الخاص.

كود VBA: حفظ القيمة السابقة للخلية في خلية أخرى

Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long
    Dim xCell As Range
    Dim xDCell As Range
    Dim xHeader As String
    Dim xCommText As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    xHeader = "Previous value :"
    x = xDic.Keys
    For I = 0 To UBound(xDic.Keys)
        Set xCell = Range(xDic.Keys(I))
        Set xDCell = Cells(xCell.Row, 7)
        xDCell.Value = ""
        xDCell.Value = xDic.Items(I)
    Next
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim I, J As Long
    Dim xRgArea As Range
    On Error GoTo Label1
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    Set xDependRg = Target.Dependents
    If xDependRg Is Nothing Then GoTo Label1
    If Not xDependRg Is Nothing Then
        Set xDependRg = Intersect(xDependRg, Range("C:C"))
    End If
Label1:
    Set xRg = Intersect(Target, Range("C:C"))
    If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = Union(xRg, xDependRg)
    ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = xDependRg
    ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
        Set xChangeRg = xRg
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    xDic.RemoveAll
    For I = 1 To xChangeRg.Areas.Count
        Set xRgArea = xChangeRg.Areas(I)
        For J = 1 To xRgArea.Count
            xDic.Add xRgArea(J).Address, xRgArea(J).Formula
        Next
    Next
    Set xChangeRg = Nothing
    Set xRg = Nothing
    Set xDependRg = Nothing
    Application.EnableEvents = True
End Sub

في الحالات التي يُفضّل فيها تخزين القيمة السابقة كـ التعليق—مفيد للمعاينة السريعة والتعليق—يحقّق كود VBA التالي هذا تلقائيًا كلما تم تغيير خلية في العمود المستهدف:

كود VBA: حفظ القيمة السابقة للخلية في التعليق

Dim xRg As Range
Dim xChangeRg As Range
Dim xDependRg As Range
Dim xDic As New Dictionary
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim I As Long
    Dim xCell As Range
    Dim xHeader As String
    Dim xCommText As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    xHeader = "Previous value :"
    For I = 0 To UBound(xDic.Keys)
        Set xCell = Range(xDic.Keys(I))
        If Not xCell.Comment Is Nothing Then xCell.Comment.Delete
        With xCell
            .AddComment
            .Comment.Visible = False
            .Comment.Text xHeader & vbCrLf & xDic.Items(I)
        End With
    Next
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim I, J As Long
    Dim xRgArea As Range
    On Error GoTo Label1
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    Set xDependRg = Target.Dependents
    If xDependRg Is Nothing Then GoTo Label1
    If Not xDependRg Is Nothing Then
        Set xDependRg = Intersect(xDependRg, Range("C:C"))
    End If
Label1:
    Set xRg = Intersect(Target, Range("C:C"))
    If (Not xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = Union(xRg, xDependRg)
    ElseIf (xRg Is Nothing) And (Not xDependRg Is Nothing) Then
        Set xChangeRg = xDependRg
    ElseIf (Not xRg Is Nothing) And (xDependRg Is Nothing) Then
        Set xChangeRg = xRg
    Else
        Application.EnableEvents = True
        Exit Sub
    End If
    xDic.RemoveAll
    For I = 1 To xChangeRg.Areas.Count
        Set xRgArea = xChangeRg.Areas(I)
        For J = 1 To xRgArea.Count
            xDic.Add xRgArea(J).Address, xRgArea(J).Text
        Next
    Next
    Set xChangeRg = Nothing
    Set xRg = Nothing
    Set xDependRg = Nothing
    Application.EnableEvents = True
End Sub

ملاحظات حول المعاملات:

  • الرقم 7 فيCells(xCell.Row,7) يشير إلى العمود G. غيّر هذه القيمة إذا أردت حفظ القيمة السابقة في عمود آخر.
  • Range("C:C")يُحدِّد العمود الذي سيتم تتبع التغييرات فيه. غيّره حسب احتياجاتك، مثل استخدام «D:D» لتتبع التغييرات في العمود D.

3. لتمكين دعم القاموس للنص البرمجي، انتقل إلى «أدوات» > «مراجع...» في محرر VBA. عند ظهور مربع حوار «المراجع – VBAProject»، فعّل خيار «Microsoft Scripting Runtime»، ثم انقر «موافق» كما هو موضح.

لقطة شاشة لمربع حوار المراجع (References) مع تحديد Microsoft Scripting Runtime

4. اضغط «Alt» + «Q» لإغلاق محرر VBA والعودة إلى ورقة العمل الخاصة بك.

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

مثال على المخرجات عند حفظ القيم السابقة للخلايا في خلايا أخرى:

لقطة شاشة تُظهر قيم الخلايا السابقة المحفوظة في عمود آخر في إكسل

مثال على المخرجات عند حفظ القيم السابقة للخلايا في التعليقات:

لقطة شاشة تُظهر قيم الخلايا السابقة المحفوظة كتعليقات في إكسل

نصائح واستكشاف الأخطاء وإصلاحها:

  • إذا لم تعمل ماكروهات VBA كما هو متوقع، فانتقِل إلى «ملف» > «خيارات» > «مركز الثقة» > «إعدادات الماكرو»، وتأكد من ضبط الإعدادات على «تمكين جميع الماكروهات».
  • راجع مراجع الأعمدة الخاصة بك إذا لم تُسجَّل القيم في الموقع المطلوب.
  • إذا استمرت الأخطاء، فتأكد من تفعيل مكتبة «Microsoft Scripting Runtime» بشكل صحيح كما ورد أعلاه.

أدوات Microsoft 365 — مراجعة القيم السابقة والمحدّثة للخلايا باستخدامإظهار التغييراتومحفوظات الإصدار

في Microsoft 365، يمكنك مراجعة التعديلات (من غيّر ماذا ومتى، بما في ذلك القيم قبل وبعد) دون الحاجة إلى استخدام ميزة «تتبع التغييرات» القديمة. استخدمإظهار التغييراتللحصول على تفاصيل دقيقة على مستوى الخلية، ومحفوظات الإصدارلعرض لقطات كاملة للملف واستعادته بسهولة.

المتطلبات

  • تم حفظ المصنف علىOneDrive أوSharePoint.
  • تم تسجيل الدخول بحساب Microsoft 365؛الحفظ التلقائيمفعّلبشكل نشط.
  • التنسيق الحديث ().xlsx)؛ ولا يستخدمالمصنف المشترَك (القديم).

إظهار التغييرات (مراجعة على مستوى الخلية)

1. افتح المصنف المحفوظ على السحابة، ثم انتقل إلىمراجعة ▸ إظهار التغييراتلفتح الجزء الجانبي.
2. (اختياري) حدد ورقةً أو نطاقًا أولًا لتضييق نطاق النتائج.
3. استعرض الإدخالات لرؤية المحرر، والطابع الزمني، والقيمالقديمة ← الجديدة؛ ثم انقر على إدخال للانتقال مباشرةً إلى الخلية.

محفوظات الإصدار (مقارنة واستعادة)

1. انتقل إلىملف ▸ معلومات ▸ محفوظات الإصدار.
2. افتح إصدارًا سابقًا للمقارنة؛ يمكنك نسخ الخلايا أو النقر علىاستعادةلاسترجاع الملف بأكمله.

  • هل زر «إظهار التغييرات» معطّل (باللون الرمادي)؟احفظ الملف على OneDrive/SharePoint، وفعّل «الحفظ التلقائي»، وحوّل من تنسيق وضع التوافق ()ملف ▸ معلومات ▸ تحويل)، وتأكد من أن خاصيةالمصنف المشترَك (القديم)غير مفعّلة. وإذا ظل الخيار غير متاح في تطبيق سطح المكتب، جرّب استخدام Excel للويب!
  • الأمان/الأقفال:قد تعطّل حماية المصنف أو ورقة العمل، أو التشفير، أو إدارة الحقوق (IRM) ميزة «إظهار التغييرات».
  • الملفات المحلية:لا يُحتفظ بسجلٍ كاملٍ للتغييرات في الملفات المحفوظة محليًّا؛ لذا استخدم ميزة «محفوظات الإصدار» عبر السحابة للحصول على أفضل النتائج.
  • هل تحتاج إلى كتابة القيم فعليًا داخل الخلايا؟إن ميزتي «إظهار التغييرات» و«محفوظات الإصدار» هما أداتان مخصصتان للمراجعة؛ أما إذا أردت تسجيل «القيمة السابقة» في عمود مساعد كلما تم تعديل خلية، فاستخدم نصًّا صغيرًا من كودWorksheet_Change بلغة VBA.

المزايا

  • مراجعة تلقائية تُظهر من قام بالتغيير ومتى تم ذلك، مع عرض القيم قبل التعديل وبعده—بدون الحاجة إلى ماكروهات.
  • يعمل بسلاسة عبر جميع المنصات (Windows وMac والويب) عند حفظه في OneDrive أو SharePoint.

العيوب

  • يتطلب التخزين السحابي والحفظ التلقائي، وقد تكون التفاصيل محدودة بالنسبة لبعض التعديلات المؤقتة.
  • لا يقوم بإدخال القيم السابقة تلقائيًا في الخلايا؛ استخدم VBA إذا كانت هذه الميزة ضرورية لمنطق عملك.

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

🤖KUTOOLS AI مساعد: ثوّر تحليل البيانات استنادًا إلى:التنفيذ الذكي   |  إنشاء الكود|  إنشاء الصيغ المخصصة  |  تحليل البيانات وإنشاء المخططات البيانية|  استدعاء الوظائف المحسنة
الميزات الشائعة:البحث، التمييز أو وضع علامة على المكررات   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |  التقريب بدون استخدام الصيغة...
بحث متقدم:VLookup متعدد المعايير  |  VLookup متعدد القيم  |   VLookup عبر أوراق متعددة   |   مطابقة غامضة....
قائمة منسدلة متقدمة:إنشاء قائمة منسدلة بسرعة   |  قائمة منسدلة تابعة   |  قائمة منسدلة متعددة الاختيار....
مدير الأعمدة:إضافة عدد محدد من الأعمدة|نقل الأعمدة|تبديل حالة ظهور الأعمدة المخفية|مقارنة النطاقات والأعمدة...
ميزات مميزة:التركيز على الشبكة   |  عرض التصميم   |شريط الصيغ المحسن   | مدير الدفتر والورقة   |  مكتبة الموارد(نص تلقائي)|  أداة اختيار التاريخ   |  تجميع ورقات العمل  |  تشفير/فك تشفير الخلايا   | إرسال رسائل البريد الإلكتروني حسب القائمة   |  مرشح متقدم   |   تصفية خاصة(تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...) ...
أفضل 15 مجموعات الأدوات:12 أدواتالنصوص(إضافة نص،حذف الأحرف المحددة، ...)|   50+أنواعالمخططات البيانية(مخطط جانت، ...)|   40+ صيغعملية(حساب العمر بناءً على تاريخ الميلاد، ...)|   19 أدواتالإدراج(إدراج رمز QR،إدراج صورة من المسار، ...)|   12 أدواتالتحويل(تحويل إلى كلمات،تحويل العملة، ...)|   7 أدواتدمج وتقسيم(دمج متقدم للصفوف،تقسيم الخلايا، ...)|... وأكثر من ذلك
استخدم Kutools باللغة التي تفضلها – يدعم الإنجليزية والإسبانية والألمانية والفرنسية والصينية و40+ لغات أخرى!

عزِّز مهاراتك في Excel باستخدام Kutools لـ Excel، وعايش الكفاءة كما لم تفعل من قبل.يقدّم Kutools لـ Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية ووقت الحفظ.انقر هنا للحصول على الميزة التي تحتاجها أكثر من غيرها...


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

  • تمكّن من التحرير والقراءة باستخدام علامات التبويب في Word وExcel وPowerPoint، وPublisher وAccess وVisio وProject.
  • افتح وأنشئ مستندات متعددة في علامات تبويب جديدة داخل النافذة نفسها، بدلاً من فتح نوافذ جديدة.
  • يزيد إنتاجيتك بنسبة 50% ويوفّر لك مئات نقرات الفأرة كل يوم!

جميع الإضافات من Kutools في برنامج تثبيت واحد!

Kutools for Office حزمةٌ تحتوي على إضافاتٍ مخصصة لتطبيقات Excel وWord وOutlook وPowerPoint، إلى جانب Office Tab Pro، مما يجعلها الخيار المثالي للفِرق التي تعمل عبر تطبيقات Office.

ExcelWordOutlookTabsPowerPoint
  • حزمة شاملة واحدة— إضافات Excel وWord وOutlook وPowerPoint بالإضافة إلى Office Tab Pro
  • برنامج تثبيت واحد، ترخيص واحد— الإعداد خلال دقائق (جاهز لـ MSI)
  • يعمل بشكل أفضل معًا— إنتاجية ميسَّرة عبر تطبيقات Office
  • تجربة مجانية لمدة 30 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
  • أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل