Sub Del_Rows()
Dim i As Long, j As Long, k As Long, lr As Long, nc As Long
Dim Rws As Variant, b As Variant
With Columns("A").SpecialCells(xlVisible)
If .Areas.Count > 1 Then
lr = .Areas(.Areas.Count).Row
ReDim b(1 To lr, 1 To 1)
Rws = Split(Range("A1:A" & lr).SpecialCells(xlVisible).Address(0, 0), ",")
For i = 0 To UBound(Rws) - 1
For j = Mid(Split(Rws(i) & ":" & Rws(i), ":")(1), 2) + 1 To Mid(Split(Rws(i + 1), ":")(0), 2) - 1
b(j, 1) = 1
k = k + 1
Next j
Next i
Application.ScreenUpdating = False
ActiveSheet.ShowAllData
nc = Cells.Find(What:="*", LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1
With Range("A2").Resize(lr - 1, nc)
.Columns(nc).Offset(-1).Value = b
.Sort Key1:=.Columns(nc), Order1:=xlAscending, Header:=xlNo
.Resize(k).EntireRow.Delete
End With
Application.ScreenUpdating = True
Else
MsgBox "No hidden rows"
End If
End With
End Sub