I really stink at using For Each ... In ...

Is there a way to do the following?

Dim dbrRow As ListRow

For Each dbrRow In wsTX.ListObjects("tblTransactions").DataBodyRange.Rows
    If dbrRow.Range.SpecialCells(xlCellTypeVisible).EntireRow Then Debug.Print dbrRow.Range.Cells(1, 1)
Next
I'm getting clobbered in the "For Each" line with a Run-time error '13': Type mismatch.

I need to find some good study material on this. Almost every time i will come up with a work around instead of the "For Each / In" by getting a count and a starting place and then looping with a counter, such as
Dim lCtr as Long
Dim lCtRows as Long

lCtRows = wsTX.ListObjects("tblTransactions").Databodyrange.Rows.Count
For lCtr = 1 To lCtRows
    If dbrRow.Range.SpecialCells(xlCellTypeVisible).EntireRow Then Debug.Print dbrRow.Range.Cells(1, 1)
Next lCtr
OK, so that will work perfectly well, but i want to quit avoiding the "For Each ... In ..." structure and to be able to use it properly!

Thank-you for your help!