【发布时间】:2016-04-06 21:51:04
【问题描述】:
使用 Excel 中的一些 VBA 代码向空列表对象添加行时遇到一个奇怪的问题。有谁知道发生了什么或如何解决它?问题来了:
首先我删除列表对象(表)的内容,使用:
AListObject.DataBodyRange.Delete
然后我有一个循环,它迭代地添加一行并用数据填充它。我通过使用添加行:
AListObject.ListRows.Add
这是奇怪的行为。首先,代码删除listobject的数据:
AListObject.DataBodyRange.Delete
即时窗口显示AListObject.ListRows.Count 等于0,因此所有行都被删除。然后我添加一行:
AListObject.ListRows.Add (first iteration)
立即窗口显示AListObject.ListRows.Count 等于2,因此Add 方法创建了两行,而不是一行。此外,写入第 1 行的数据丢失。 listobject(表格)的第 1 行显示空单元格。
对于循环的剩余迭代(2 到 n),ListRows.Add 方法工作正常,只创建一行。将数据写入这些行(2 到 n)也可以正常工作。
为什么当 listobject 为空时调用的第一个 Add 方法创建了两行,为什么我不能写入第 1 行?此代码以前运行良好,并且在我的工作簿的旧备份版本中运行良好。有谁知道为什么会出现这种奇怪的行为?
谢谢。
【问题讨论】:
-
请显示完整的代码。