If I run this when your attached file/sheet is active:
Sub blah1()
Dim c As Range
With Range("A1").CurrentRegion.Columns(1)
Application.FindFormat.Clear
Application.FindFormat.IndentLevel = 0
Set c = .Find(What:="", after:=.Cells(.Cells.Count), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True)
If Not c Is Nothing Then
firstcell = c.Address
Do
c.Select
'do something with c here
MsgBox c.Address
Set c = .Find(What:="", after:=c, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True)
Loop Until c.Address = firstcell
End If
End With
End Sub
it finds all EXCEPT row 13. (A13)
Turns out this is because it's the only cell with no indent that also has left align applied. Remove that left align and it's found. Agreed, this is no good.
I can't think of a non-looping-through-each-cell approach to this, however, if you can arrange only to loop through the range once to determine indents (all of them or just the 0 indents) and keep that information in memory (or even in cells in a fresh column) and use when needed you could reduce the impact of looping.
It all depends on what you're trying to do. I would tend to go for a fresh column holding the indent level of each row, which can be done with a udf or with a macro to populate that column. Then you can use that columns data to filter, make a pivot, whatever.
The following will leave you with an array in zz containing all the row numbers with 0 indents, regardless of the presence of left-align, at the same time it will leave you with a range (c) which is only the cells with zero indent in column A:
Sub blah2()
Dim c As Range
With Range("A1").CurrentRegion.Columns(1)
ReDim zz(1 To .Rows.Count)
i = 0
For Each cll In .Cells
If cll.IndentLevel = 0 Then
If c Is Nothing Then Set c = cll Else Set c = Union(c, cll)
i = i + 1
zz(i) = cll.Row
End If
Next cll
ReDim Preserve zz(1 To i)
End With
If not c is nothing then c.select
End Sub
and below will fill column F with the indent levels of column A:
Sub blah3()
With Range("A1").CurrentRegion.Columns(1)
zz = .Value
i = 0
For Each cll In .Cells
i = i + 1
zz(i, 1) = cll.IndentLevel
Next cll
Range("F1").Resize(.Rows.Count) = zz
End With
End Sub