It is not apparent to me. I don't know if you are working from the first example range or the 2nd. Attaching a short example file is usually the best way to explain a problem and get help. Click the paperclip icon in a reply after clicking the Go Advanced button in lower right to browse and attach a file.
If it is just a matter of getting the blank cells, something like this can be used. I just tested a 4x4 range. Of course one can iterate the full range by block size as needed.
If you are not familiar with the Immediate Window in the Visual Basic Editor, VBE, one can send output there using Debug.Print and do short tests there as well.
Sub test_BlanksRrange() Dim r As Range, s As String
Set r = ActiveSheet.Range("A1:D4")
s = BlanksRange(r).Address(external:=True)
Debug.Print s
End Sub
Function BlanksRange(aSet As Range) As Range
Dim c As Range, r As Range, ws As Worksheet
Set ws = aSet.Parent
On Error Resume Next
For Each c In aSet
If c.Value2 = "" Then
If r Is Nothing Then
Set r = c
Else
Set r = Union(r, c)
End If
End If
Next c
Set BlanksRange = r
End Function