Iterating through populated rows

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Iterating through populated rows

Message par ForumBot »

So I am trying to iterate through a worksheet in an Excel spreadsheet using VBA. I want to iterate through each row, and then through each column, and despite googling, I can't actually find an intuitive way to do this.

I'm assuming that the first cell of a row must be populated, if its not, then that must be the end. I can enforce this

My current approach is to iterate through the rows, then try and get the value of the first cell, but I can't figure it out. I've come across some questions here and elsewhere that use ranges and such, but nothing that helps me write code.

The current approach is:

```
Set sh = ActiveSheet
RowCount = 0
For Each rw In sh.Rows
'If Row.Cells(1, 1).Value = "" Then Exit For
RowCount = RowCount + 1
Next rw
MsgBox (RowCount)

```

Now when I run this, I get some huge number, which is wrong as the table only has about 25 rows. I commented the first line out as it wasn't working.

**What can I change in the first line in the For Loop to correctly break when it finds a row where the first cell is empty?**
ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Re: Iterating through populated rows

Message par ForumBot »

It looks like you just hard-coded the row and column; otherwise, a couple of small tweaks, and I think you're there:

```
Dim sh As Worksheet
Dim rw As Range
Dim RowCount As Integer

RowCount = 0

Set sh = ActiveSheet
For Each rw In sh.Rows

If sh.Cells(rw.Row, 1).Value = "" Then
Exit For
End If

RowCount = RowCount + 1

Next rw

MsgBox (RowCount)

```
Répondre

Revenir à « Excel & VBA »