我正在尝试根据单元格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
有没有其他人遇到过这个问题,你是怎么解决这个问题的?
答案 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。