Looping through all rows in a table column, Excel-VBA
If this is in fact a ListObject
table (Insert Table from the ribbon) then you can use the table's .DataBodyRange
object to get the number of rows and columns. This ignores the header row.
Sub TableTest()
Dim tbl As ListObject
Dim tRows As Long
Dim tCols As Long
Set tbl = ActiveSheet.ListObjects("Table1") '## modify to your table name.
With tbl.DataBodyRange
tRows = .Rows.Count
tCols = .Columns.Count
End With
MsgBox tbl.Name & " contains " & tRows & " rows and " & tCols & " columns.", vbInformation
End Sub
If you need to use the header row, instead of using tbl.DataBodyRange
just use tbl.Range
.
Assuming that your table is called 'Table1' and the column you need is 'Column' you can try this:
for i = 1 to Range("Table1").Rows.Count
Range("Table1[Column]")(i)="PHEV"
next i
You can search column before assignments:
Dim col_n as long
for i = 1 to NumCols
if Cells(1, i).Value = "column header you are looking for" Then col_n = i
next
for i = 1 to NumRows
Cells(i, col_n).Value = "PHEV"
next i