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

كيفية مسح محتويات الخلية المحددة إذا تغيرت قيمة خلية أخرى في إكسيل؟

لنفترض أنك تريد مسح نطاق من محتويات الخلية المحددة إذا تم تغيير قيمة خلية أخرى ، كيف يمكنك القيام بذلك؟ سيوضح لك هذا المنشور طريقة لحل هذه المشكلة.

امسح محتويات الخلية المحددة إذا تغيرت قيمة خلية أخرى برمز VBA


امسح محتويات الخلية المحددة إذا تغيرت قيمة خلية أخرى برمز VBA

كما هو موضح أدناه ، عند تغيير القيمة في الخلية A2 ، سيتم مسح المحتويات الموجودة في الخلية C1: C3 تلقائيًا. الرجاء القيام بما يلي.

1. في ورقة العمل ، ستقوم بمسح محتويات الخلية بناءً على تغييرات خلية أخرى ، انقر بزر الماوس الأيمن فوق علامة تبويب الورقة وحدد عرض الرمز من قائمة السياق. انظر لقطة الشاشة:

2. في الافتتاح ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، انسخ والصق رمز VBA أدناه في نافذة التعليمات البرمجية.

كود فبا: امسح محتويات الخلية المحددة إذا تغيرت قيمة خلية أخرى

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("C1:C3").ClearContents
    End If
End Sub

ملاحظة: في الكود ، B2 هي الخلية التي ستقوم بمسح محتويات الخلية بناءً عليها ، و C1: C3 هو النطاق الذي ستقوم بمسح المحتويات منه. الرجاء تغييرها كما تريد.

3. اضغط على قديم + Q مفاتيح لإغلاق ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

ثم يمكنك رؤية المحتويات في النطاق C1: C3 يتم مسحها تلقائيًا عندما تتغير القيمة في الخلية A2 كما هو موضح أدناه لقطة الشاشة.


مقالات ذات صلة:


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

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٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (38)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
الكود لمسح خلية إذا كانت التغييرات الأخرى تعمل بشكل رائع !!!! لكني أحتاجه للعمل بالعكس ..... كيف يكتب هذا الرمز ؟؟


شكرا على مساعدتكم
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عزيزي سكوت ،
ماذا تقصد العمل في الاتجاه المعاكس؟ عند مسح محتويات خلايا معينة يدويًا (C1: C3) ، فهل تمسح محتوى الخلية A2 تلقائيًا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، هذا يعمل لخلية مصدر ثابتة فقط (A2) ، كيف يتم ديناميكيًا مثل المصدر خلية متغيرة؟ حاولت الكتابة
A = activecell.row
إذا لم يتقاطع (الهدف ، النطاق ("أ" و "أ)) لا شيء إذن
Range ("C1: C3"). ClearContents
إنهاء حالة

يجب أن يؤدي هذا المهمة فيما يتعلق بالخلية النشطة (أي الاختيار) ولكنه لا يعمل
شكر
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يوم جيد،
الرجاء محاولة رمز VBA أدناه. شكرا لك على تعليقك.

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
إذا (لا يتقاطع (الهدف ، الصفوف (1)) لا شيء) و (الهدف ، العدد = 1) إذن
Range ("C1: C3"). ClearContents
إنهاء حالة
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أنا أبحث عن طريقة لمسح نطاق من خلايا البيانات عند إدخال "x" في خلية معينة. لقد استخدمت الصيغة أعلاه وعملت بشكل مثالي لهذا الصف الواحد. المشكلة هي أنني بحاجة إلى تمديده إلى عدة صفوف. على سبيل المثال ، إذا تم إدخال "x" في "D13" ، فأنا بحاجة إلى مسح النطاق J: 13 - v: 13. أحتاج أيضًا إلى أن يحدث ذلك إذا تم إدخال x في "D14" حيث أحتاج إلى مسح النطاق d: 14 - v: 14. هل هناك طريقة لكتابة ذلك؟ شكرا لمساعدتك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، هذا لا يعمل من أجلي. لا شيء يتغير ولكن لا توجد أخطاء أيضًا. أي نصائح؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يوم جيد،
نأسف للإزعاج. هل ستقدم إصدار Office الخاص بك؟ شكرا على تعليقك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
في حالة A2 ، كيف يمكنني الإشارة إلى خلية من ورقة عمل مختلفة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
بأي طريقة للقيام بذلك بدون VBA؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا سونيا ،
لم يتم العثور على أي حل باستثناء VBA. شكرا على تعليقك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ما هو رمز VBA الذي أستخدمه إذا كان لدي جدول وأحتاج إلى فراغات متعددة؟

طاولتي هي B3: E7. إذا تم مسح المحتويات الموجودة في العمود B ، فأنا أرغب في الحصول على البيانات الموجودة في العمود C و D و E لهذا الصف. لدي ما يلي للصف 3 ، لكنني أرغب في نفس الشيء في الصف 4,5,6،7،XNUMX و XNUMX.

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
إذا لم يتقاطع (الهدف ، النطاق ("B3")) لا شيء إذن
Range ("C3: E3"). ClearContents
إنهاء حالة
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ماذا عن الشخص الذي يقوم بمسح محتويات أي خلية بنقرة مزدوجة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، كيف تكرر الرمز لأكثر من خلية واحدة في المثال ، على سبيل المثال ، إذا قمت بحذف محتويات الخلايا a4 و a5 ، فأنا أريد مسح محتويات b4: z4 & b5: z5 على التوالي ، أحتاج إلى القيام بذلك بالنسبة لجدول بيانات كبير يحتوي على 1000 صف ، فإن أي نصيحة ستكون محل تقدير كبير
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا جوليان ، أنا أيضًا أبحث عن نفس الشيء ، واسمحوا لي أن أعرف إذا كان لديك أي حل لهذا.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يرجى تغيير الأرقام وفقًا لذلك
خافت أنا كعدد صحيح
ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
ل2 = الأول ل10
lookrange = "A" & i
contentrange = "B" & i & ":" & "C" & i
إذا لم يتقاطع (الهدف ، النطاق (المدى)) فلا شيء إذن
النطاق (contentrange). ClearContents
إنهاء حالة
أنا القادم
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا sagarsrinivas0312 ، شكرًا جزيلاً على هذا الرمز. أنا بالفعل أبحث في أسبوع عن هذا الحل!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا رائع شكرا كيف أفعل ذلك عدة مرات ... لذا امسح الخلايا الأخرى بناءً على عمود مختلف؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
riusciresti a scrivermelo in modo che debba solo fare copia ed incolla؟
non riesco veramente a farlo funzionare

غرازي ميل
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
أحاول مسح الخلايا الزائدة من العمود A و B في حالة العثور على خلايا فارغة في العمود C من الورقة المسماة "تم البيع" وتشغيل الماكرو من الورقة المسماة "الفاتورة".

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

مجموع مسح ()

خافت ز طويلة
بالنسبة إلى g = 2 إلى ActiveSheet.UsedRange.Rows.Count
إذا كانت الخلايا (g، "C"). القيمة = "" ثم
الخلايا (g ، "A"). ClearContents
الخلايا (g ، "B"). ClearContents

إنهاء حالة
التالى
مجموع النهاية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يبدو أن هذا لا يعمل إذا تم التحكم في محتويات الخلية المحددة بواسطة خلية في ورقة أخرى؟ هل هناك إصلاح لهذه؟
مثال باستخدام أسماء الخلايا الخاصة بك
إذا كانت الخلية "A2" هي (= sheet1 [@ [a5]] وتغير هذا الرقم على الورقة 1 ، فحينئذٍ يغير محتويات A2 ، فإنه لا يمسح المحتويات في النطاق المحدد.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ورقة عمل فرعية خاصة_Activate ()
If Range ("S2") <> Range ("A2"). القيمة ثم
النطاق ("S2") = النطاق ("A2"). القيمة
Range ("d2: g2"). ClearContents
إنهاء حالة
يمكن استبدال "S2" بأي خلية خارج نطاق البيانات. ما يفعله VBA هو التحديث التلقائي لبيانات 'S2' ، ثم البيانات التي يتم تحديثها هي ما يتحكم في النطاق الذي حددته وما إذا كان سيتم مسحه أم لا.
هذه هي الطريقة الوحيدة التي وجدتها للقيام بذلك بنجاح عند استخدام الخلايا المشار إليها داخل وخارج ورقة العمل.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ليس بالضبط ما أحتاجه ولكن الوصول إلى هناك ، لدي خلية فارغة E3 لدي بيانات في B3 ، عندما أضع البيانات في E3 ، إذا كانت هي نفسها B3 ، فسيتم حذف B3 ، آمل أن تتمكن من مساعدتي.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل من الممكن مسح محتويات الخلية المحددة إذا كانت الخلية المشغلة تحتوي على رقم معين؟ قل ، إذا كانت الخلية A1 = 1 ، فقم بإلغاء تحديد الخلايا A2: A4؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
صباح الخير جميعا،

Besoin d'aide، j'ai besoin d'effacer le contenu d'une cellule de la Colonne "I" si la cellule (de la même ligne) de la Colonne "O" = 0، sur environ 2000 lignes avec des titres tout 10 lignes بيئة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

مجرد البحث عن طريقة سهلة للقيام بذلك ، إذا كان "B2" قد حدد "نعم" من قائمة التحقق من صحة البيانات ، فستقوم الخلية B3 بمسح البيانات ... والعكس صحيح: إذا حدد "B3" "نعم" من قائمة التحقق من صحة البيانات ، ستعمل الخلية "B2" على مسح بياناتها.

في الأساس B2 or B3 يمكن القول "نعم"(من قائمة التحقق من صحة البيانات) ولكن ليس في نفس الوقت أبدًا ، يجب على المرء أن يمسح الآخر.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا جيف ،
يمكن أن يقدم لك رمز VBA التالي خدمة. يرجى محاولة إعطائها.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220721
If Target.Cells.Count > 1 Then Exit Sub
    If (Not Intersect(Target, Range("B2")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B3").ClearContents
        Else
        If (Not Intersect(Target, Range("B3")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B2").ClearContents
    End If
    End If
End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Buongiorno ، avrei bisogno di cancellare una serie di caselle (un rettangolo، quindi su più righe e Colonne) في قاعدة آل فالوري دي أونالترا سيلا. es: se la cella A2 è inferiore di 12، il quadrato con vertici opposto C2: F4 venga cancellato.
شكرا جزيلا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا بيترو ،
آسف أنا لا أفهم سؤالك تماما. هل تمانع في تحميل لقطة شاشة لبياناتك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
омогите с решением، VBA не знаю. هذا هو السبب في أنه لا يوجد أي دليل على ذلك.
еняю А2 удаляется из G2، меняю А3 удаляется из G3، меняю A6 удаляется из G6 и т.д.

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
إذا لم يتقاطع (الهدف ، النطاق ("A2")) لا شيء إذن
المدى ("G2"). ClearContents
إنهاء حالة
نهاية الفرعية


هل تعلم؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا Наталья ،
يمكن أن يساعدك رمز VBA التالي في حل المشكلة. يرجى محاولة إعطائها.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221013
    Dim xRight As Range
    Dim KeyCells As Range
    Set KeyCells = Range("A:A")
    Set xRight = Target.Offset(0, 6)
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        xRight.ClearContents
    End If
End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

Zu Punkt 3.
Die Taste "Andere" Finde ich nicht auf meiner Windows Tastatur. Ich Habe Strg ، Alt ، Tab ... allerdings die Taste Andere gibt es auf meiner Tastatur leider nicht.

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

أولاً ، عند تغيير حجم الجدول المستهدف ، يتم مسح جميع بيانات الجدول "و" ، تتم إعادة تسمية جميع رؤوس العمود 1 ما عدا العمود 1 إلى "Column2 ، ColumnXNUMX ، إلخ. ويتم حفظ المصنف تلقائيًا itslef ويوقف التراجع.

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


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F3:F500")) Is Nothing Then
     Target.Offset(0, 1).ClearContents
    ElseIf Not Intersect(Target, Range("G3:G500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
        Target.Offset(0, 2).ClearContents
    ElseIf Not Intersect(Target, Range("H3:H500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
    End If
End Sub


أي فكرة عما يمكن أن يكون خطأ؟

ويرجع الفضل في ذلك مسبقا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Hola، estoy trabajando una base de datos en OFFICE ONLINE a traves de ONEDRIVE، quiero que al PONER "CANCELADO" o "NOSHOW" التخلص من el contenido de la fila seleccionada.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا يا ملاك،
لا يعمل رمز VBA في Office Online. آسف للإزعاج.
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

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