定位一个名称取自单元格值的表

时间:2015-11-20 12:58:48

标签: excel vba

我正在尝试根据单元格A2中的表名添加到特定的表。 我不确定我是否正在使用正确的术语进行搜索,但这是我不远处的,我显然会遇到不匹配的错误:

Sub addToExistingTable()

    Dim tblname As ListObject
    Dim nNewRow As ListRow

    tblname = Range("A2").Value
    Sheets("sheet1").ListObjects(tblname).Range.Select
    Set nNewRow = Selection.ListObject.ListRows.Add(AlwaysInsert:=True)
    nNewRow.Range.Cells(1, 1).Value = Range("A1").Value

End Sub  

有没有其他人遇到过这个问题,你是怎么解决这个问题的?

1 个答案:

答案 0 :(得分:0)

Range("A2")所在的工作表与表所在的工作表之间存在明确的歧义。但是,进一步阅读代码似乎表明,一旦您选择了表,您想要添加Range("A1")的值(同样没有指定父工作表,因此必须与刚刚选择的表位于同一工作表上)表格上有一个新行,因此Range("A1:A2")几乎肯定会在 Sheet1 上(与表格相同的工作表)。

Sub addToExistingTable()

    Dim tblname As String
    Dim nNewRow As ListRow

    With Worksheets("Sheet1")
        tblname = .Range("A2").Value

        With .ListObjects(tblname)
            Set nNewRow = .ListRows.Add(AlwaysInsert:=True)
            nNewRow.Range.Cells(1, 1).Value = .Range("A1").Value
        End With
    End With
End Sub

有关远离依赖选择和激活以实现目标的更多方法,请参阅How to avoid using Select in Excel VBA macros