1回しか使ってない変数がいくつもあるけど、まとめると読みにくくなるし
とりあえず空行を詰めるだけならこんな感じでいける

Sub Macro1()
  With ActiveSheet.UsedRange
    r1 = .Row
    c1 = .Column
    r2 = r1 + .Columns.Count - 1
    c2 = c1 + .Rows.Count - 1
  End With
  
  With Application.WorksheetFunction
    For i = r2 - 1 To r1 Step -1
      If .CountA(Rows(i)) = 0 Then Rows(i).Delete
    Next
    For i = c2 - 1 To c1 Step -1
      If .CountA(Columns(i)) = 0 Then Columns(i).Delete
    Next
  End With
End Sub