Excel 将编码放在ListObject表中

Excel 将编码放在ListObject表中,excel,vba,Excel,Vba,下面的VBA代码向下查看表中的B列。当在B列中识别出一个值(60)时,我将相邻的值从C列复制到D列中。 我尝试过使用偏移量,当它不在正式的ListObject表中时效果很好,但在表中“无效或不合格引用”时,我会收到一条错误消息。 如何更新VBA代码以在excel表中工作?我已经四处搜索并尝试了一些更改,但仍然出现错误 Sub TableFind() Dim LastRow As Long Dim rng As Range, C As Range With Worksheet.ListObje

下面的VBA代码向下查看表中的B列。当在B列中识别出一个值(60)时,我将相邻的值从C列复制到D列中。 我尝试过使用偏移量,当它不在正式的ListObject表中时效果很好,但在表中“无效或不合格引用”时,我会收到一条错误消息。 如何更新VBA代码以在excel表中工作?我已经四处搜索并尝试了一些更改,但仍然出现错误

Sub TableFind()

Dim LastRow As Long
Dim rng As Range, C As Range

With Worksheet.ListObjects("myTable")
    LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
    Set rng = .Range("B2:B" & LastRow)

        For Each C In rng
        If C.Value = "60" Then
            C.Offset(, 3).Copy
            C.Offset(, 4).PasteSpecial Paste:=xlPasteValues
        End If
    Next C
End With

End Sub

不需要查找表中的最后一行
DataBodyRange
引用了表的主体,因此只需使用它即可

假设表从A列开始,您可能会执行以下操作:

With Worksheet.ListObjects("myTable")
    For Each C in .ListColumns(2).DataBodyRange
        If C.Value = "60" Then
            C.Offset(, 2).Value = C.Offset(,1).Value
        End If
    Next C
End With

不需要查找表中的最后一行
DataBodyRange
引用了表的主体,因此只需使用它即可

假设表从A列开始,您可能会执行以下操作:

With Worksheet.ListObjects("myTable")
    For Each C in .ListColumns(2).DataBodyRange
        If C.Value = "60" Then
            C.Offset(, 2).Value = C.Offset(,1).Value
        End If
    Next C
End With

我试图用sheet.ListObjects(“myTable”)引用
后面的表名。我尝试在范围之前执行类似操作。我尝试使用sheet.ListObjects(“myTable”)
引用
之后的表名。我试着在射程之前做类似的事情。