将表格行设置为范围

时间:2019-07-12 15:09:15

标签: excel vba row listobject

一旦我通过for循环标识了一个感兴趣的单元格,那么我该如何在包含该感兴趣的单元格的整个表行中做出一个范围呢? 我只需要我较大代码的一小部分即可。

'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.

我想要一个变量(即-Trans_Queue_Row)来标识包含TransCell的整个表行。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

从我的回答到上一个问题:

Trans_new_NPD_row.Range.Value = _
     Application.Intersect(TransCell.EntireRow, QueueTable.DataBodyRange).Value

您可以使用“相交”来找到TransCell.EntireRow公用的范围以及表/列表对象的数据部分。

相关问题