I'm not positive I fully understand what you intend, but in addition to Bob's comments, I'd suggest either (a) using For...Next loops instead:
Public Sub ReportBlanks()
Dim nMaxRows As Long
Dim nRow As Long
Dim nMaxColumns As Long
Dim nColumn As Long
Dim sAddress As String
nMaxRows = 4
nMaxColumns = 4
For nRow = 1 To nMaxRows
For nColumn = 1 To nMaxColumns
If IsEmpty(Cells(nRow, nColumn)) Then _
sAddress = sAddress & ", " & Cells(nRow, nColumn).Address(False, False)
Next nColumn
Next nRow
If sAddress = vbNullString Then
MsgBox "No blanks"
Else
MsgBox "Blanks: " & Mid(sAddress, 3)
End If
End Sub
or (b) using SpecialCells:
Public Sub ReportBlanks2()
Dim nMaxRows As Long
Dim nMaxColumns As Long
Dim sAddress As String
nMaxRows = 4
nMaxColumns = 4
With Cells(1, 1).Resize(nMaxRows, nMaxColumns)
On Error Resume Next 'in case there are no blanks
sAddress = .SpecialCells(xlCellTypeBlanks).Address(False, False)
On Error GoTo 0
End With
MsgBox "Blanks: " & sAddress
End Sub