【发布时间】:2018-09-12 12:56:17
【问题描述】:
我在 Excel 中使用 listobjects,但遇到以下问题: 每次运行代码时,我都会将数据添加到表中。 以前我必须删除所有旧数据。
ThisWorkbook.Sheets("comm").ListObjects(1).DataBodyRange.Delete
之后发生的事情是我收到以下错误:
myNrofRowsinCOMM = COMMtbl.DataBodyRange.Rows.Count
我查看this post 无济于事。我还是不明白这是怎么回事。
我也尝试了以下方法:
MsgBox "COMMtbl.Range.Rows.Count:" & COMMtbl.Range.Rows.Count
MsgBox "COMMtbl.ListRows.Count:" & COMMtbl.ListRows.Count
MsgBox "COMMtbl.databodyRange.Rows.Count:" & COMMtbl.DataBodyRange.Rows.Count
If COMMtbl.Range.Rows.Count = 1 Then
COMMtbl.ListRows.Add (1)
End If
如果表格是空的(行标题和空的第一行),第一行给出 2。因此该范围有 2 行,这似乎与现实相符。 COMMtbl.Range.Rows.Count=2 第二个给出0。我根本不明白。 COMMtbl.ListRows.Count=0 第三个给出了错误 "未设置对象变量或 withblcok 变量"
我正在尝试向表中添加行并用数据填充它们,为此我添加了一行并填充它。我想在最后添加一行,因此我每次都需要计算行数。一切都很好,除了我之前删除表格的全部内容时的第一个,看起来像:
欢迎任何帮助
非常感谢。
【问题讨论】:
-
Range、ListRows和DataBodyRange是不同的。ListRows和DataBodyRange属于Range类型,但覆盖范围不同。DataBodyRange= 包含列表中标题行和插入行之间的数据区域的范围。如果您只有 header 和 insert row ,它会返回 null,因此会出现错误。
标签: excel vba range rows listobject