Try this. Below macro will:
(*) in the Active Worksheet:
(1) identify the range of all non-empty cells,
(2) loop through that range column-by-column,
(3) loop through each column cell-by-cell
Sub LoopThruUsedRangeColByCol()
Dim rngCol, rngAll, cell As Range, cnt As Long
Set rngAll = Range("A1").CurrentRegion
'MsgBox R.Address(0, 0), , "All data"
cnt = 0
For Each rngCol In rngAll.Columns
rngCol.Select
For Each cell In Selection
cnt = cnt + 1
Debug.Print (cell.Address)
Debug.Print (cell.row)
Debug.Print (cell.Column)
If cnt > 3 Then End
Next cell
Next rngCol
End Sub
Notes:
(1) cnt added only so the output does not overwhelm. Remove If cnt > 3 Then End after demo.
(2) you need to open the "immediate window" to see the debug.print output.
To do this: Menubar => View menu => Immediate Window