اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

على افتراض ان الشيت المطلوب حذف صفوفه هو sheet1

تفضل الكود


Sub DeleteRows()
    Dim i As Integer
    For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
        If InStr(1, ActiveSheet.Cells(i, 1).Value, "تعديل") > 0 Then
            ActiveSheet.Rows(i).Delete
        End If
    Next i
End Sub
 

احفظ الملف وأغلقه، ثم أعد فتحه وابحث عن زر "تشغيل الماكرو" (المخصص للكود) وعند الضغط على هذا الزر سوف يقوم المايكرو بحذف الصفوف التي تحتوي على كلمة "تعديل".

يرجى ملاحظة أن هذا الكود يحذف الصفوف بشكل دائم، لذا يجب تأكيد أن الصفوف التي تريد حذفها تحتوي على كلمة "تعديل" بالفعل قبل تشغيل الماكرو. كما يجب الحذر من استخدام هذا الكود في الصفوف الهامة التي قد يؤدي حذفها إلى فقدان البيانات.

او الشيت النشط

يمكن للكود حذف صفوف الشيت النشط

قام بنشر

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

1. التأكد من أن الصفوف التي تحتوي على كلمة "تعديل" موجودة في العمود الأول من ورقة العمل.

المقصود بالعمود الأول هو العمود A

2. التأكد من أن الكلمة الدلالية موجودة بالضبط كما هي مكتوبة في الكود، بما في ذلك الأحرف الكبيرة والصغيرة.

3. التأكد من أن الكود المستخدم هو بالضبط الذي تم تقديمه في الإجابة السابقة.

4. التأكد من عدم وجود أي صفوف مخفية في ورقة العمل.

5. التأكد من عدم وجود قيم فارغة أو مسافات إضافية قبل أو بعد الكلمة الدلالية في الصفوف.

6. التأكد من أن لغة Excel تعتمد على اللغة الإنجليزية، وإذا كنت تستخدم Excel بلغة أخرى فمن الممكن أن تحتاج إلى تغيير الكلمة الدلالية في الكود إلى اللغة التي تستخدمها.

إذا لم تتمكن من حل المشكلة بعد مراجعة هذه النقاط، فيمكنك محاولة استخدام الكود التالي بدلاً من الكود السابق:


Sub DeleteRows()
    Dim i As Long
    Dim LastRow As Long
    LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    For i = LastRow To 1 Step -1
        If InStr(1, ActiveSheet.Cells(i, 1).Value, "تعديل") > 0 Then
            ActiveSheet.Rows(i).Delete
        End If
    Next i
End Sub

 

حظ موفق

قام بنشر

شكرا جزيلا لحضرتك وبارك الله فيك وأكثر الله من أمثالك

لي سؤال الكود يعمل الورقة النشطة فقط صح كده

  • أفضل إجابة
قام بنشر

خيار آخر قد يكون أسرع 

Sub test()
    Dim i As Integer
    Dim r As Range: Dim tr As Range
    With ActiveSheet
        For i = 1 To .UsedRange.Rows.Count + 2
            If Trim(.Cells(i, 3)) = "تعديل" Then
                If r Is Nothing Then
                    Set r = .Rows(i)
                Else
                    Set r = Union(r, .Rows(i))
                End If
            End If
        Next i
        r.Delete
    End With
End Sub

 

  • Like 4

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information