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

كيفية إعادة تطبيق التصفية التلقائية تلقائيًا عندما تتغير البيانات في Excel؟

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

مرشح تحديث doc auot 1

أعد تطبيق التصفية التلقائية تلقائيًا عندما تتغير البيانات برمز VBA


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

عادة ، يمكنك تحديث بيانات عامل التصفية عن طريق النقر فوق ميزة إعادة التقديم يدويًا ، ولكن هنا ، سأقدم لك رمز VBA لتحديث بيانات التصفية تلقائيًا عند تغيير البيانات ، يرجى القيام بما يلي:

1. انتقل إلى ورقة العمل التي تريد تحديث عامل التصفية تلقائيًا عند تغيير البيانات.

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

رمز فبا: إعادة تطبيق عامل التصفية تلقائيًا عندما تتغير البيانات:

Private Sub Worksheet_Change(ByVal Target As Range)
   Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

مرشح تحديث doc auot 2

ملاحظة: في الكود أعلاه ، ورقة 3 هو اسم الورقة ذات الفلتر التلقائي الذي تستخدمه ، يرجى تغييره حسب حاجتك.

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

مرشح تحديث doc auot 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٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (36)
تقييم شنومك من شنومكس · تصنيفات 1
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، كيف يمكنني استخدام كل هذا في تمويل google؟ تكس
تم تصغير هذا التعليق بواسطة المشرف على الموقع
جميل .. حقا أحتاجه
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أريد تغييرًا في ورقة واحدة للتسبب في تصفية أوراق أخرى متعددة تلقائيًا ، كيف يمكنني تغيير هذا الرمز؟ على سبيل المثال: تم تغيير ورقة "أ" ، مما يؤدي إلى تطبيق "ورقة 1" و "ورقة 2" و "ورقة 3" على عامل التصفية التلقائي الخاص بها. شكرًا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أفعل هذا من أجل مقدمة في الورقة حيث تم ضبط الخلية على = sheet1! E6. لن يتم تطبيق الفلتر عندما يتغير. إذا قمت بتغيير الرقم في الورقة الخلفية ، يتم ضبطه من الأمام ولكن لا يتم تصفيته. إذا قمت بضبط الصيغة لتصفية معاييرها ، فستتم إعادة تطبيقها. ماذا يمكنني أن أفعل؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
استخدام هذا
تغيير العمل الفرعي الخاص (الهدف ByVal كنطاق)
ورقة النشاط. التصفية التلقائية
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا يمكنني الحصول على هذا للعمل معي على الإطلاق. أحاول أن آخذ من ورقة رئيسية وأقوم فقط بالوظائف التي تنطبق على مديري مشاريع معينين في كل علامة تبويب تحمل أسمائهم. أريد أيضًا أن يتم التحديث تلقائيًا عندما أقوم بإجراء تغييرات.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذه الأوامر كلها وهمية لا تفعل شيئا. محاولة تماما ولكن لا فائدة من.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يعمل بشكل رائع ويوفر لي الكثير من الوقت والعبث .. نصيحة رائعة حقًا .. شكرًا جزيلاً لمساعدتك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا الحل يعمل بشكل مثالي. شكرا لكتابته! إذا واجه أي شخص مشكلة ، فهناك بعض الأشياء التي يجب مراعاتها.

أولاً ، يتم استدعاء الحدث Worksheet_Change على أساس كل ورقة على حدة. هذا يعني أنه إذا كان لديك أوراق متعددة تحتوي على عوامل تصفية تحتاج إلى تحديث ، فستحتاج إلى الرد على كل هذه الأحداث. روتين فرعي واحد Worksheet_Change لكل ورقة عمل ، وليس روتين فرعي واحد لكامل المصنف (استثناء واحد - انظر الملاحظة أدناه).

ثانيًا ، ومتابعة للأول ، يجب وضع الكود في وحدة التعليمات البرمجية الخاصة بورقة العمل المراد مراقبتها. من السهل (عن غير قصد) تبديل وحدات التعليمات البرمجية بمجرد دخولك إلى محرر VB ، لذلك يجب توخي الحذر لوضعها على وجه التحديد في الورقة التي تريد مراقبتها لتغييرات البيانات.

ثالثًا ، هذا غير مؤكد ، لكنه ربما يكون نقطة خطأ. يستخدم المثال أسماء الأوراق مثل "Sheet1" و "Sheet2" وما إلى ذلك. إذا قمت بإعادة تسمية الأوراق ، فقد تحتاج إلى تحديث الكود. ملاحظة في المثال ، تم تسمية Sheet7 بالاسم "dfdf". إذا كنت ترغب في تحديث الفلتر هناك ، فستحتاج إلى استخدام ؛
أوراق ("dfdf"). تصفية تلقائية
ليس؛
أوراق ("Sheet7"). AutoFilter.ApplyFilter

قد يكون من الجيد تحديث المقالة بما في ذلك مثال بورقة أعيدت تسميتها.


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

# (يجب وضع الكود في ورقة العمل لتتم مراقبته من أجل تغييرات البيانات)
ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
أوراق ("Sheet1"). AutoFilter.ApplyFilter
أوراق ("Sheet2"). AutoFilter.ApplyFilter
أوراق ("Sheet3"). AutoFilter.ApplyFilter
أوراق ("Sheet4"). AutoFilter.ApplyFilter
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
اهلا مايك،
شكرا على شرحك المفصل.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شرح رائع ، شكرا لك.

ولكن كيف يمكنني تشغيل جداول البيانات ("Sheet3"). AutoFilter.ApplyFilter عند إنشاء ورقة جديدة؟
بما أنني لا أستطيع كتابة الكود الذي ذكرته على ورقة غير موجودة بعد
تم تصغير هذا التعليق بواسطة المشرف على الموقع
رائع شكرا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يعمل مثل البطل وبسيط جدا. شكرا جزيلا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يبدو هذا رائعًا. هل يمكن أن تخبرني كيف أفعل الشيء نفسه للفرز ، بدلاً من التصفية ، من فضلك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا كريس،
قد يكون المقال التالي يمكن أن يحل مشكلتك ، يرجى الاطلاع على:

https://www.extendoffice.com/documents/excel/2592-excel-auto-sort-by-value.html

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

لدي جدول تمت تصفيته بنمط "العشرة الأوائل / لوحة الصدارة" والذي يتم ملؤه من إدخال البيانات في ورقة عمل منفصلة (في الواقع تمر البيانات من خلال 3 أوراق عمل قبل الوصول إلى الجدول). عندما يتم تغيير البيانات في ورقة عمل إدخال البيانات ، يتم تحديث أرقام جدول لوحة المتصدرين ولكن المرشح لا يتم تحديثه تلقائيًا.
أي أفكار حول كيفية القيام بذلك؟
ًشكراً جزيلا.
الاسكندرية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لدي هي نفس المشكلة. هل يمكن لأحد أن يساعدنا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أواجه نفس المشكلة. أحاول التصفية التلقائية للورقة 2 التي تحتوي على بيانات قادمة من الورقة 1. وهي لا تعمل إلا إذا قمت بتغيير البيانات في الورقة 2 ، وليس في الورقة 1.
هل لديك أي أفكار حول سبب عدم نجاح هذا وكيفية إصلاحه؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، يبدو أن هذا يعمل بشكل رائع ولكني أواجه مشكلات عندما يكون هناك أكثر من عامل تصفية في نفس ورقة العمل (علامة التبويب). لقد قمت بتحويل نطاق الخلايا إلى جدول للسماح بعوامل تصفية منفصلة ومتعددة داخل ورقة العمل نفسها. يظهر هذا المثال فقط لتحديث أحد الجداول / عوامل التصفية. أي اقتراحات حول كيفية تحديث كافة الجداول / عوامل التصفية داخل ورقة العمل؟

شكرا جزيلا،

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

أغشية سانجات
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا لا يعمل مع عامل التصفية على أساس اختيار القائمة https://www.extendoffice.com/documents/excel/4113-excel-filter-based-on-list-selection.html
تم تصغير هذا التعليق بواسطة المشرف على الموقع
رائعة وبسيطة للقيام بها. شكرا جزيلا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

هذا الرمز يعمل بشكل رائع ، شكرا جزيلا.

ومع ذلك ، لدي مشكلة صغيرة واحدة معها - إذا قمت بتغيير القيم في أي خلية ليست جزءًا من الجدول ، فسيظهر لي خطأ وقت التشغيل يقول:

"خطأ وقت التشغيل '91':

متغير الكائن أو متغير الكتلة غير معد "


لدي خيارات التصحيح أو الإنهاء ، خيار المتابعة غير نشط. يمكنني النقر فوق "إنهاء" ولا يزال الرمز يعمل ، ولكن من المزعج للغاية التعامل مع هذه النافذة المنبثقة بعد كل تغيير.

أي شخص لديه خبرة مماثلة أو اقتراح حول كيفية فرز هذا؟

شكر!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا يا ديفيد،
لحل مشكلتك ، يمكنك تطبيق الكود التالي:

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
على خطأ استئناف التالي
أوراق ("Sheet3"). AutoFilter.ApplyFilter
نهاية الفرعية

من فضلك جربها ، آمل أن تساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا Skyyang ،


لقد نفذت حلك وتم إصلاحه بالفعل.

وبفضل الكثير!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، لقد واجهت نفس المشكلة ، لقد قمت بلصق الرمز الجديد وتغيير اسم الورقة ولكن بعد ذلك لم يحدث شيء ، لم يتم تحديث الفلتر
تم تصغير هذا التعليق بواسطة المشرف على الموقع
نفس المشكلة هنا أيضًا ، أي حل محدث؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا يمكن الحصول على هذا للعمل على الإطلاق في Office 365
أي اقتراحات
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا ، شكرا جزيلا على المساعدة. شيء ما لا يعمل بشكل صحيح بالنسبة لي. ها هي القصة.

تحتوي الورقة 1 على بيانات متغيرة. تحتوي الورقة 3 على بيانات ثابتة وعامل تصفية. تأتي معايير التصفية على "الورقة 3" من الورقة 1. تحتوي الورقة 1 على بيانات تأتي من النتائج التي تمت تصفيتها في الورقة 3.

تحتوي الورقة 3 على رمز:

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
Range ("A1: U14"). إجراء مرشح متقدم: = xlFilterCopy ، CriteriaRange: = Range ("A22: U23") ، CopyToRange: = Range ("A25: U26") ، فريد: = خطأ
نهاية الفرعية

يعمل بشكل رائع إذا فعلت أي شيء على الورقة 3. لا مشاكل. شكرًا لك!

في البداية كان لدي رمز على الورقة 1:

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
أوراق ("Sheet3"). AutoFilter.ApplyFilter
نهاية الفرعية

مما أدى إلى ظهور الخطأ "خطأ وقت التشغيل 91 ، متغير الكائن أو مع عدم تعيين الكتلة".

لقد غيرت الرمز بناءً على التعليقات ليكون:

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
على خطأ استئناف التالي
أوراق ("Sheet3"). AutoFilter.ApplyFilter
نهاية الفرعية

الآن لا أحصل على خطأ ، لكن البيانات الموجودة على الورقة 3 وبالتالي الورقة 1 لا تتغير. بمعنى آخر ، لا يحدث تطبيق المرشح على الورقة 3 عندما أقوم بإجراء تغيير على الورقة 1. لا يهم إذا أصبت أو انقر فوق خلية أخرى بعد تغيير خلية معايير عامل التصفية الورقة 3 التي تم تعيينها على الورقة 1.

إلى جانب ذلك ، أتوقع أنه إذا كنت أرغب في الحصول على خلايا متعددة على الورقة 1 التي تسببت في وجود عوامل تصفية على الأوراق 4 و 5 بالإضافة إلى الورقة 3 ، فسوف أحتاج إلى الكود الموجود في الورقة 1 لقراءة:

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
على خطأ استئناف التالي
أوراق ("Sheet3"). AutoFilter.ApplyFilter
أوراق ("Sheet4"). AutoFilter.ApplyFilter
أوراق ("Sheet5"). AutoFilter.ApplyFilter
نهاية الفرعية

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

هذا جزء عظيم من التعليمات البرمجية شكرا لك. المشكلة الوحيدة التي أواجهها هي أنني أستخدم قائمة منسدلة في ورقة مخطط منفصلة. إذا قمت بتغيير القيمة يدويًا في الخلية المرتبطة بالقائمة المنسدلة ، فإنها تعمل. ولكن عندما أحاول استخدام القائمة المنسدلة فقط ، فلن يتم تحديثها. أي أفكار؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لدي بالفعل بيانات من ملف Excel آخر تم استيراده في ورقة Excel باسم "قاعدة بيانات". ثم أقوم باستيراد هذه البيانات في نفس ملف Excel ولكن في "نظرة عامة" في ورقة Excel أخرى. أريد عندما تتغير البيانات في المصدر الأصلي ، أن يتم تطبيق الفلتر في الورقة "نظرة عامة". شكرًا لك على الشخص الذي يمكنه مساعدتي :). ملاحظة: غير قادر على استخدام VBA في ورقة Excel الأولى
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

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