Search code examples
excelvbarowlistobject

Setting a table row as a range


Once I have identified a cell of interest via a for loop, how can I then make a range out of the entire table row that contains said cell of interest? I need help with only this small part of my larger code.

'TransColumn is a table column in which I am looking for the phrase "NPD".
'TransCell is my cell of interest, containing the phrase "NPD".

'I want Trans_Queue_Row to be the table row in which TransCell is located.  

                        For Each TransCell In TransColumn
                        If InStr(1, TransCell.Value, "NPD") > 0 Then

                        Dim Trans_Queue_Row As Range
                        Set Trans_Queue_Row = ThisWorkbook.Sheets("Project Queue").ListObjects("TableQueue").ListRows

'I know this looks like a weird way to achieve what I'm asking for, but I'm using InStr to support some other elements of my code not displayed here.

I want a variable (i.e. - Trans_Queue_Row) to identify the entire table row that contains TransCell.


Solution

  • Dim TableQueue as ListObject, Trans_Queue_Row As Range, i as Long
    Set TableQueue = ThisWorkbook.Sheets("Project Queue").ListObjects("TableQueue")
    
    With TransColumn.DataBodyRange
        For i = 1 To .Count
            If InStr(1, .Rows(i).Value, "NPD") > 0 Then 
                Set Trans_Queue_Row = TableQueue.DataBodyRange.Rows(i)
            End If
        Next i
    End With