Excel 针对名称取自单元格值的表

Excel 针对名称取自单元格值的表,excel,vba,Excel,Vba,我试图根据单元格A2中的表名添加到特定的表中。 我不确定我是否使用了正确的术语进行搜索,但这是我目前没有的,我显然得到了一个不匹配错误: Sub addToExistingTable() Dim tblname As ListObject Dim nNewRow As ListRow tblname = Range("A2").Value Sheets("sheet1").ListObjects(tblname).Range.Select Set nN

我试图根据单元格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  

还有其他人有这个问题吗?你是如何解决的

范围(“A2”)
所在的工作表和表格所在的工作表之间存在明显的歧义。但是,进一步阅读代码似乎表明,一旦选择了表,您就要将
范围(“A1”)
(同样没有指定父工作表,因此必须与刚才选择的表位于同一工作表上)中的值添加到表上的新行中,因此
范围(“A1:A2”)
几乎肯定在表1上(与表相同的工作表)


有关摆脱依靠选择和激活来实现目标的更多方法,请参阅。

谢谢。我已经将上面的代码从我的实际代码中散列到一起,它确实指定了工作表,因为我将信息从一个工作表复制到另一个工作表。您的代码在我的测试中使用了字符串,但不确定为什么在我尝试时它不起作用。(还感谢您提醒不要使用select,我没有理由这么做。我已经多次看到该链接。)
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