صفوف حذف VBA | أمثلة لحذف صفوف Excel باستخدام VBA
Excel VBA حذف الصف
عادةً في ورقة عمل Excel ، لدينا طريقتان مختلفتان لحذف الصفوف ، أحدهما اختصار لوحة المفاتيح والآخر باستخدام طريقة النقر بزر الماوس الأيمن والإدراج ، ولكن في VBA ، يتعين علينا استخدام أمر الحذف وبيان ورقة العمل لحذف أي صفوف معًا ، والحيلة إلى هذا هو أنه إذا احتجنا إلى حذف صف واحد ، فإننا نعطي مرجعًا لصف واحدًا ولكن بالنسبة للأعمدة المتعددة ، فإننا نقدم مراجع صفوف متعددة.
باستخدام VBA Delete Row Method ، يمكننا حذف جميع الصفوف الفارغة ، ويمكننا حذف الصف بناءً على قيمة الخلية ، ويمكننا أيضًا حذف الصف بأكمله إذا كانت أي من الخلايا فارغة.
في هذه المقالة ، سنناقش طريقة "VBA Delete Row". ابق مشغولاً لمدة 15 إلى 20 دقيقة التالية للتعرف على المفهوم.
كيف تحذف صف؟
يمكنك تنزيل قالب VBA Delete Row Excel هذا هنا - VBA Delete Row Excel Templateمثال 1
في VBA ، نحتاج إلى ذكر الصف الذي نحذفه.
رمز:
Sub DeleteRow_Example1 () خلايا (1، 1) End Sub
الخلايا (1 ، 1) تعني العمود الأول للصف الأول ، أي الخلية A1. ثم نستخدم طريقة "حذف".
رمز:
Sub DeleteRow_Example1 () خلايا (1، 1) احذف End Sub
الآن سيؤدي هذا إلى حذف الخلية الأولى. ستؤدي جميع قيم الجانب الأيمن إلى إزاحة خلية واحدة إلى اليسار.
المثال رقم 2
إذا كنت ترغب في حذف الصف بأكمله ، فنحن بحاجة إلى استخدام الخاصية "EntireRow" ثم نحتاج إلى استخدام طريقة "الحذف" لحذف الصف بأكمله من الخلية التي حددناها.
رمز:
فرعي DeleteRow_Example2 () خلايا (1 ، 1). كامل الصف. حذف End Sub
على سبيل المثال ، لقد أدخلت بعض الأحرف في ورقة Excel على النحو التالي.
الآن إذا قمت بتشغيل هذا الرمز ، فسيتم حذف الصف بأكمله وليس خلية واحدة.
المثال رقم 3
يمكننا حذف الصف بعدة طرق. في المثال أعلاه ، قمنا بحذف الصف باستخدام خاصية CELLS ، والآن سنرى كيفية الحذف باستخدام خاصية ROWS.
الآن نحتاج إلى ذكر الصف الذي نحتاج إلى حذفه ، دعنا نقول أننا بحاجة إلى حذف الصف الخامس.
الآن استخدم خاصية "EntireRow".
بعد اختيار الخاصية ما علينا القيام به أي طريقة. نحن بحاجة إلى حذف الصف.
رمز:
Sub DeleteRow_Example3 () Rows (5) .EntireRow.Delete End Sub
لذلك ، سيحذف هذا الرمز الصف الخامس.
المثال رقم 4
احذف عدة صفوف باستخدام Range Object
كيف نحذف عدة صفوف؟
يمكننا استخدام كائن VBA RANGE لحذف أكثر من صف واحد. افترض أن لديك بعض القيم من خلايا A1 إلى A6.
أريد الآن حذف أول 5 صفوف ، حتى أتمكن من الرجوع إلى هذه الصفوف باستخدام كائن النطاق كـ "Range (“ A1: A5 ”)"
رمز:
Sub DeleteRow_Example4 () Range ("A1: A5") End Sub
الآن أريد استخدام خاصية الكلمة "EntireRow".
رمز:
النطاق الفرعي DeleteRow_Example4 () ("A1: A5")
في هذا الصف بأكمله ، نحتاج إلى تنفيذ طريقة الحذف ، لذا استخدم طريقة الحذف.
رمز:
Sub DeleteRow_Example4 () Range ("A1: A5"). EntireRow .Delete End Sub
الآن سيؤدي هذا إلى حذف الصفوف المحددة.
المثال الخامس
احذف الصفوف بناءً على قيمة الخلية
يمكننا أيضًا استخدام طريقة "EntireRow.Delete" هذه لحذف الصف بناءً على قيمة الخلية في VBA. على سبيل المثال ، لدي قيم "نعم ولا" من الخلية A1 إلى A10.
الآن نحن بحاجة إلى حذف الصفوف التي لها القيمة "لا". لتنفيذ هذه المهمة ، نحتاج إلى استخدام الوظيفة "IF" مع الحلقات لحذف جميع الصفوف التي لها قيمة "لا".
سوف يقوم الكود أدناه بالمهمة بالنسبة لنا.
رمز:
Sub DeleteRow_Example5 () Dim k As Integer For k = 10 To 1 Step -1 If Cells (k، 1) .Value = "No" ثم الخلايا (k، 1) .EntireRow.Delete End If Next k End Sub
المثال رقم 6
احذف جميع صفوف الخلايا الفارغة
هناك حالات نحتاج فيها إلى حذف الصف بأكمله إذا كانت أي من الخلايا الموجودة في النطاق فارغة. على سبيل المثال ، لدي أدناه مجموعة من البيانات.
جميع الخلايا الملونة فارغة ، لذلك أحتاج إلى حذف الصف بأكمله. يمكننا تنفيذ هذه المهمة بمجموعتين من التعليمات البرمجية. يوجد أدناه الرمز.
رمز:
Sub DeleteRow_Example6 () Range ("A1: F10"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub
سيؤدي هذا إلى تحديد الخلايا الفارغة في النطاق من A1 إلى F10. إذا تم العثور على أي خلايا فارغة ، فسيؤدي ذلك إلى حذف الصف بأكمله.
تكمن المشكلة في هذا الرمز في أنه سيتم حذف صف الخلية الفارغة فقط في النطاق من A1 إلى F10 ، ولكن إذا كانت أي خلايا فارغة في أي خلايا أخرى ، فلن يتم حذفها. لذا مع وضع هذا في الاعتبار ، فقد كتبت رمزًا آخر.
رمز:
Sub DeleteRow_Example7 () Dim RangeToDelete as Range DeletionRange كمجموعة نطاق RangeToDelete = Application.InputBox ("الرجاء تحديد النطاق" ، "حذف صفوف الخلايا الفارغة" ، النوع: = 8) Set DeletionRange = RangeToDelete RangeToDelete.SpecialCells (xlCellTypeRanks). احذف End Sub
عند تشغيل هذا الرمز أولاً ، سيطلب منك تحديد النطاق مع ظهور مربع إدخال أمامك.
بعد تحديد النطاق الذي تحتاجه للنقر فوق موافق ، سيتم حذف جميع صفوف الخلايا الفارغة في النطاق المحدد.