XL2000: كيفية حذف الخلايا مع عن كل... التالي تنفيذ حلقة مستمرة

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

213544
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
للحصول على إصدار Microsoft Excel 2002 من هذه المقالة، راجع 291300.
للحصول على إصدار Microsoft Excel 98 من هذه المقالة، راجع 184378.
للحصول على إصدار Microsoft Excel 97 من هذه المقالة، راجع 159915.
الموجز
Microsoft Excel 2000 تحذف الخلايا الموجودة في عن كل... التالي حلقة بطريقة مختلفة عن إصدارات من Microsoft Excel الأقدم من Excel 97.

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

نموذج البيانات

لاستخدام الماكرو في هذا المقال اكتب نموذج البيانات في ورقة عمل:
   A1:  a  B1:  1   A2:  b  B2:  2   A3:  x  B3:  3   A4:  x  B4:  4   A5:  c  B5:  5   A6:  x  B6:  6   A7:  d  B7:  7   A8:  x  B8:  8   A9:  x  B9:  9   A10: e  B10: 10				

ماكرو عينة

في الوحدة نمطية ماكرو جديد اكتب الماكرو التالي:
Sub DeleteCells()    'Loop through cells A1:A10 and delete cells that contain an "x."    For Each c in Range("A1:A10")        If c = "x" Then c.EntireRow.Delete    NextEnd Sub				

سلوك ماكرو نموذج في Microsoft Excel 2000

عند تشغيل الماكرو DeleteCells في Microsoft Excel 2000 يتم حذف الصفوف 3 و 6 و 8. على الرغم من الصفوف 4 و 9 على "x" في العمود A ، لا يقوم الماكرو حذف الصفوف. نتائج الماكرو في Microsoft Excel 2000 كالتالي:
   A1: a   B1: 1   A2: b   B2: 2   A3: x   B3: 4   A4: c   B4: 5   A5: d   B5: 7   A6: x   B6: 9   A7: e   B7: 10				
عند Microsoft Excel حذف الصف 3 ، نقل كافة الخلايا صف واحد لأعلى. على سبيل المثال، يفترض الخلية A3 محتويات الخلية A4 ، يفترض الخلية A4 محتويات الخلية A5 وما. بعد أجل كل... حلقة التالي تقييم خلية أو بتقييم الخلية التالية; لذلك، عندما يتم إزاحة الخلايا التي قد يتم تخطي بواسطة الحلقة.

سلوك ماكرو نموذج في Microsoft Excel 5.0 و 7.0

عند تشغيل الماكرو DeleteCells في Microsoft Excel 5.0 و 7.0 الماكرو بحذف كافة الصفوف التي تحتوي على "x". نتائج الماكرو في Microsoft Excel 5.0 أو 7.0 كالتالي:
   A1: a   B1: 1   A2: b   B2: 2   A3: c   B3: 5   A4: d   B4: 7   A5: e   B5: 10				
عند حذف الصف 3 نقل كافة الخلايا أعلى بمقدار صف واحد; الخلية A3 يفترض محتويات الخلية A4 و الخلية A4 يفترض محتويات الخلية A5 وما.

ومع ذلك، بخلاف سلوك الحلقة في Microsoft Excel 2000، عند أجل كل... التالي حلقة يتم تقييم خلايا في Microsoft Excel 5.0 و 7.0 ، فإنه reevaluates الخلية إذا تم حذفه في الحلقة; لذلك، لا يتم تخطي الخلايا.

الطريقة المستحسنة حول استخدام حلقة إلى حذف خلايا

استخدم الماكرو التالي عندما تريد استخدام حلقة لحذف الخلايا:
Sub DeleteCells2()    Dim rng As Range    Dim i As Integer, counter As Integer    'Set the range to evaluate to rng.    Set rng = Range("A1:A10")    'initialize i to 1    i = 1    'Loop for a count of 1 to the number of rows    'in the range that you want to evaluate.    For counter = 1 To rng.Rows.Count        'If cell i in the range contains an "x",        'delete the row.        'Else increment i        If rng.Cells(i) = "x" Then            rng.Cells(i).EntireRow.Delete        Else            i = i + 1        End If    NextEnd Sub				
نتائج هذا الماكرو في Microsoft Excel 2000 والإصدارات السابقة كالتالي:
   A1: a   B1: 1   A2: b   B2: 2   A3: c   B3: 5   A4: d   B4: 7   A5: e   B5: 10				

أسلوب إضافية حول استخدام حلقة إلى حذف خلايا

هذا أسلوب بديل إلى الطريقة الموضحة أعلاه. كان تظهر نفس النتائج.
Sub DeleteCells3()    Dim rng As Range, i As Integer    'Set the range to evaluate to rng.    Set rng = Range("A1:A10")    'Loop backwards through the rows    'in the range that you want to evaluate.    For i = rng.Rows.Count To 1 Step -1        'If cell i in the range contains an "x", delete the entire row.        If rng.Cells(i).Value = "x" Then rng.Cells(i).EntireRow.Delete    NextEnd Sub				
مراجع
للحصول على مزيد من المعلومات حول تنفيذ الحلقات في ماكرو في محرر Visual Basic انقر فوق "تعليمات Microsoft Visual Basic" من القائمة تعليمات ، اكتب تنفيذ الحلقات ThroughCode في مساعد Office "أو" معالج الإجابة ثم انقر فوق بحث لعرض الموضوع.

تحذير: تمت ترجمة هذا المقال تلقائياً

خصائص

رقم الموضوع: 213544 - آخر مراجعة: 02/11/2014 05:35:56 - المراجعة: 4.2

  • Microsoft Excel 2000 Standard Edition
  • kbnosurvey kbarchive kbmt kbdtacode kbhowto kbprogramming KB213544 KbMtar
تعليقات