Option Explicit
Sub RemoveHiddenRows()
Dim shtTarget As Worksheet
Dim rngRow As Range, rngDeleteRows As Range
Dim objRows As Range
Set shtTarget = ActiveSheet
With shtTarget
Set objRows = Intersect(.Range("A:A").EntireRow, .UsedRange)
If objRows Is Nothing Then Exit Sub
End With
For Each rngRow In objRows.Columns(1).Cells
If rngRow.EntireRow.Hidden Then
If rngDeleteRows Is Nothing Then
Set rngDeleteRows = rngRow
Else
Set rngDeleteRows = Union(rngDeleteRows, rngRow)
End If
End If
Next
If Not rngDeleteRows Is Nothing Then rngDeleteRows.EntireRow.Delete
End Sub