Ta bort tomma rader utifrån villkor
Här demonstreras hur vi kan ta bort tomma rader där vissa villkor ställs för borttag av rader.
Förutsättningar för exemplet:
- Fler ifyllda celler förekommer i kolumnerna B-J än vad som finns i A-kolumnen.
- Raden som innehåller den första tomma cellen i A-kolumnen samt de påföljande 10 raderna nedan ska tas bort.
- Alla arbetsblad i den berörda arbetsboken ska bearbetas.
Option Explicit
Sub Ta_Bort_Rader_Villkor()
'© 2002 Alla rättigheter XL-Dennis
Dim wbBok As Workbook
Dim wsBlad As Worksheet
Dim rnOmrade As Range
Dim lnSistaRaden As Long, lnFlerRader As Long
Dim i As Long, j As Long, k As Long
Set wbBok = ThisWorkbook
Application.ScreenUpdating = False
'Här bestämmer vi antalet rader som ska tas bort.
j = 10
For Each wsBlad In wbBok.Worksheets
With wsBlad
'Här identifieras antal ifyllda rader i A-kolumnen, vilken
'i nästa steg ska jämföras med de övriga kolumnerna
lnSistaRaden = .Cells(Rows.Count, 1).End(xlUp).Row + 1
'Här loopas B- t o m J-kolumnen igenom och innehåller någon av dessa
'kolumner flera ifyllda celler än i A-kolumnen eller i föregående kolumn
'ersätter det nya antalet rader det tidigare antalet.
For k = 1 To 8
lnFlerRader = .Cells(Rows.Count, k).End(xlUp).Row + 1
If lnSistaRaden < lnFlerRader Then
lnSistaRaden = lnFlerRader
End If
Next k
'Här tas tomma rader bort utifrån om celler i A-kolumnen är tomma eller inte.
For i = lnSistaRaden To 1 Step -1
If IsEmpty(.Cells(i, 1)) Then
.Cells(i, 1).Resize(j, 1).EntireRow.Delete
End If
Next i
End With
Next wsBlad
Application.ScreenUpdating = True
End Sub