首页 > 解决方案 > 如何在表格中添加一行?

问题描述

我想要实现的目标:
如果子表有一行填充,我想添加一个新行。

我已经尝试过
,因为我在彼此下方有 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

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

标签: excelvbalistobject

解决方案


首先,你要一个.Add收藏。此外,您不能通过它的属性设置新的。您首先必须使用适当的源范围对其进行初始化。然后重命名后。举个简单的例子:ListObjectListObjectsListObjectName

在此处输入图像描述

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如果你没有,请设置为。


推荐阅读