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

كيف يمكن تعقب التغييرات بدون مشاركة المصنف؟

عادةً ، عند تطبيق ميزة "تعقب التغييرات" في Excel ، ستتم مشاركة المصنف في نفس الوقت ، وسيكون هذا مزعجًا لأن بعض الميزات في Excel سيتم تعطيلها. كيف يمكنك تعقب التغييرات بدون مشاركة المصنف؟ هنا ، سأوصي برمز VBA لك.

تعقب التغييرات بدون مشاركة المصنف برمز VBA


السهم الأزرق الحق فقاعة تحويل النص إلى جدول في Outlook

لا توجد طريقة مباشرة لحل هذه المشكلة ، ولكن يمكنك تطبيق رمز VBA مرن لحلها ، يرجى القيام بما يلي:

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة التي تريد تتبع الخلايا التي تم تغييرها ، واختر عرض الرمز من قائمة السياق ، في النافذة المنبثقة ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، يرجى نسخ ولصق الكود التالي في الفراغ وحدة:

كود فبا: تعقب التغييرات بدون مشاركة المصنف:

Private Sub Worksheet_Change(ByVal Target As Range)
  'Updateby Extendoffice
    Const xRg As String = "A1:Z1000"
    Dim strOld As String
    Dim strNew As String
    Dim strCmt As String
    Dim xLen As Long
    With Target(1)
        If Intersect(.Cells, Range(xRg)) Is Nothing Then Exit Sub
        strNew = .Text
        Application.EnableEvents = False
        Application.Undo
        strOld = .Text
        .Value = strNew
        Application.EnableEvents = True
        strCmt = "Edit: " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
        Application.UserName & Chr(10) & "Previous Text :- " & strOld
        If Target(1).Comment Is Nothing Then
            .AddComment
        Else
            xLen = Len(.Comment.Shape.TextFrame.Characters.Text)
        End If
        With .Comment.Shape.TextFrame
            .AutoSize = True
            .Characters(Start:=xLen + 1).Insert IIf(xLen, vbLf, "") & strCmt
        End With
    End With
End Sub

تغيير مسار المستند بدون مشاركة 1

ملاحظة: في الكود أعلاه ، A1: Z1000 هو نطاق البيانات الذي تريد تعقب التغييرات.

2. ثم احفظ وأغلق نافذة الكود هذه ، الآن ، عندما تقوم بتغيير القيم في أي خلايا ضمن النطاق المحدد الذي قمت بتعيينه في الكود ، سيتم تعقب الخلايا ، ولن تتم مشاركة المصنف. انظر لقطة الشاشة:

تغيير مسار المستند بدون مشاركة 2


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

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٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (14)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عمل عظيم. لسوء الحظ ، هناك بعض المشكلات في التعليمات البرمجية الخاصة بك. - سيتم إضافة تعليق حتى على الإدخال الأول للخلية. كيف يمكنني تتبع التغييرات من الإدخال الثاني وليس الأول؟ - بمجرد إدخال قيمة في خلية ، لا يمكنني إجراء "تراجع". - لا يعمل مع الطاولات. حاول استخدام الجدول ثم حاول إضافة أو حذف ملف خام وسوف يتعطل الكود. أتمنى حقًا أن يكون لدي المعرفة للحصول على الكود يعمل بالطريقة التي أريدها كما هو موضح أعلاه.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لدي نفس المشكلة. لم يعد الزران "تراجع" و "إعادة" يعملان. هل هناك أي حل لهذا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
حاولت استخدام رمز VBA هذا في ورقة Excel الخاصة بي. لكنها أعطتني أخطاء. لا أعرف من أين يجب استدعاء هذا الماكرو وما هي الوسيطة للوظيفة التي قدمتها عندما يتم استدعاؤها.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل توجد طريقة لتسجيل التغييرات لجميع علامات التبويب في مصنف ، وتسجيل التغييرات في جدول بيانات جديد؟ سيكون ذلك رائعًا ... ولا يمكنني العثور على أي معلومات عبر الإنترنت باستخدام هذا النوع من عمليات التتبع.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، jfjoyner ، لتغيير هذا الرمز لجميع الأوراق ، وتسجيل تغييرات المسار على ورقة أخرى ، يرجى استخدام الكود أدناه:
ملاحظة: يرجى وضع هذا الرمز في وحدة ThisWorkbook.
Option Explicit
Dim mStrRgAddress As String
Dim mStrRgValue As String

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Const xRg As String = "A1:Z1000"
Const xSheetName As String = "Record sheet" 'The sheet that you want to put the track changes, please change the sheet name to your own.
Dim strOld As String
Dim strNew As String
Dim strCmt As String
Dim xLen As Long
Dim xSheet As Worksheet
Dim xRgCell As Range
Dim xRgCell2 As Range
On Error Resume Next
Set xSheet = Application.Sheets.Item(xSheetName)
If mStrRgAddress <> "" Then
Set xRgCell = Range(mStrRgAddress)
If xRgCell.Text <> mStrRgValue Then
strCmt = mStrRgAddress & " : " & Format$(Now, "dd Mmm YYYY hh:nn:ss") & " by " & _
Application.UserName & Chr(10) & "Previous Text :- " & mStrRgValue
Set xRgCell2 = xSheet.Range("a1048576").End(xlUp)
If xRgCell2.AddressLocal = xSheet.Range("A1").AddressLocal Then
If xRgCell2.Value <> "" Then
Set xRgCell2 = xRgCell2.Offset(1, 0)
End If
Else
Set xRgCell2 = xRgCell2.Offset(1, 0)
End If
xRgCell2.Value = strCmt
End If
End If
If xSheet.Name = Sh.Name Then Exit Sub
mStrRgValue = Target.Text
mStrRgAddress = Target.AddressLocal(False, False, , True)
End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا ، هذا رائع ، لكن لا يمكنني تشغيله. أفترض أنه يعمل تلقائيًا ، مما يعني عدم الحاجة إلى النقر فوق "تشغيل"؟ أعدت تسمية ورقة العمل بحيث تقول {--TRACK_CHANGES--} لاتباع الإرشادات التي تركتها باللون الأخضر. حتى الآن ، لم يتم تسجيل أي شيء. شكرًا.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا مرة أخرى ، skyyang ، لقد لاحظت أيضًا أنه عندما قمت بلصق هذا في الوحدة النمطية لهذا المصنف ، بدأ جدول البيانات الكبير الخاص بي في الحساب باستمرار ولن يتوقف. لا أعرف شيئًا عن برمجة VBA ، لكنني وجدت هذه المناقشة حول نفس الموضوع. قد يفسر سبب استمرار الحساب إلى ما لا نهاية. https://www.mrexcel.com/board/threads/continuous-calculation-wont-stop.1179541/page-6#posts 
كانت المشكلة على موقع الويب هذا:ولكن بمجرد أن تبدأ مشكلة الحساب المستمر ، فإنها تظل مستمرة. يؤدي الضغط على مفتاح Esc إلى مقاطعة العملية الحسابية ، لكنه يبدأ في النسخ الاحتياطي مرة أخرى إلا إذا قمت بالتبديل إلى Manual Calc. يعمل وضع الحساب اليدوي بشكل جيد حتى أقوم بتشغيل أي من وحدات الماكرو ، والتي تنتهي بعد ذلك بإعادة تمكين AutoCalc ... لقد مررت بكل ورقة عمل في النموذج وقمت بتشغيل فحص الأخطاء دون جدوى.</span>
كان استنتاجهم: هذا صحيح: بمجرد الإشارة إلى كائن نموذج أو خاصيته (frmBudget.startupposition = 3) - يتم تحميل الكائن حتى تقوم بإلغاء تحميله أو إعادة تعيين مشروعك (فقدان الحالة - في هذه المرحلة يتم إعادة تعيين جميع المتغيرات وأي قيم مفقودة)
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا jfjoyner3 ، كيف حالك. كما ترى في لقطتي الشاشة ، قمت بتغيير "ورقة التسجيل" إلى "sheet2" في كود VBA. 
ثم عدت إلى مصنف Excel. بعد إجراء بعض التغييرات في الورقة 1 ، يتم تسجيل كل هذه التغييرات في الورقة 2.
بالنسبة لمسألة الحساب المستمر ، هل يمكنك من فضلك إرسال لقطات شاشة أو فيديو لمشكلتك؟ حتى نتمكن من فهم ما يجري هنا بشكل كامل. شكرًا! 
مع خالص التقدير ، ماندي
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا jfjoyner3 ، اهلا وسهلا بكم. بعد حفظ جدول البيانات برمز الماكرو VBA ، سيبدأ الماكرو تلقائيًا في كل مرة تفتح فيها جدول البيانات. لا حاجة لبدء تشغيله يدويًا. أي سؤال، فلا تتردد في الاتصال بنا. أتمنى لك يومًا سعيدًا! مع أطيب التحيات ، ماندي   
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مانديزو ، شكرا لك. هل يبدأ هذا الماكرو تلقائيًا عندما أفتح جدول البيانات؟ أم يجب أن أبدأها يدويًا؟ 
ترتبط مشكلة الحساب المستمر بتطبيق آخر. 
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا jfjoyner3 ، أولاً ، بعد نسخ كود VBA الخاص بنا في وحدة ThisWorkbook ، يتم تشغيل الكود تلقائيًا. ثانيًا ، يعمل كود VBA الخاص بنا. ترى Plesae لقطتي الشاشة اللتين قمت بتحميلهما في هذا التعليق.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Mandyzhou ، شكرًا لك مرة أخرى على هذا التوجيه التفصيلي. أتلقى خطأ نحويًا وهو يوجهني إلى هذا السطر:

إذا كان mStrRgAddress <> "" إذًا

هل أنت قادر على تعديل هذا وإزالة الخطأ النحوي؟
شكرا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل هذا MAcro يلتقط التغييرات على قيم الصيغة في كل مرة يتم فيها تحديث نموذج البيانات الخاص بي؟
لا توجد تعليقات منشورة هنا حتى الآن

تواصل معنا

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