【问题标题】:How to add a row to a table?如何在表格中添加一行?
【发布时间】:2020-05-16 23:32:15
【问题描述】:

我想要达到的目标:
如果子表有一行被填满,我想添加一个新行。

我的尝试
因为我在彼此下方有 10 个父表,所以我不能使用 Cells(Cells.Rows.Count, "E").End(xlUp).Row,因为它只会计算最后一个父表。

所以我尝试用 listobjects 来做。

当我尝试添加一个列表对象时:

With Worksheets("Uitwendige scheidingen")
    .ListObject.Add(Range("F" & NextRow + 25)).Name = "tbl_schuindak_orientatie" & Rij
End With

(Rij = 父表)

(NextRow = 父表的起始位置)

我收到错误 438

注意
我之前没有在工作表中添加任何列表对象,因此父表基本上是“假”表而不是列表对象。

【问题讨论】:

  • 您不会通过它的 name 属性设置ListObject。您首先添加它,然后设置它的名称。
  • 你是这个意思吗? .ListObject.Add (Range("F" & NextRow + 25)) 因为那仍然给我同样的错误:/
  • 我在下面添加了一个简化的例子。

标签: excel vba listobject


【解决方案1】:

首先,您必须将.AddListObject 绑定到ListObjects 集合。此外,您不能通过Name 属性设置新的ListObject。您首先必须使用适当的源范围对其进行初始化。然后重命名后。举个简单的例子:

Sub Test()

Dim nxt As Long
Dim tbl As ListObject

With ThisWorkbook.Worksheets("Sheet1")
    For x = 1 To 10 Step 3
        Set tbl = .ListObjects.Add(xlSrcRange, Source:=.Range(.Cells(x, 1), .Cells(x + 1, 1)), XlListObjectHasHeaders:=xlYes)
        tbl.Name = "Table" & x
    Next x
End With

End Sub

现在将此逻辑应用于您的情况。

注意:查看xlYes 是如何应用来告诉此示例中的XlListObjectHasHeaders 参数的,它需要考虑到我的源范围有标题。如果您没有,请设置为 xlNo

【讨论】:

  • 非常感谢!这对我有很大帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 2017-03-06
相关资源
最近更新 更多