我在excel 2010中有一个vba函数,该函数是使用这里的人员的帮助构建的。此函数复制表/表单的内容,对其进行排序,然后将其发送到适当的表。

现在,运行此功能后,我希望清除原始表。假设ACell已定义为表中的第一个单元格,我可以使用以下代码实现。
ACell.ListObject.Range.ClearContents正常工作,唯一的问题是它删除了表以及数据值。

有没有办法解决?我宁愿不必在每次输入一些数据时都设置表格。

最佳答案

怎么样:

ACell.ListObject.DataBodyRange.Rows.Delete


这将保留您的表结构和标题,但清除所有数据和行。

编辑:我将只从your previous post修改我的答案的一部分,因为它主要完成了您想要的工作。这仅留下一行:

With loSource
   .Range.AutoFilter
   .DataBodyRange.Offset(1).Resize(.DataBodyRange.Rows.Count - 1, .DataBodyRange.Columns.Count).Rows.Delete
   .DataBodyRange.Rows(1).Specialcells(xlCellTypeConstants).ClearContents
End With


如果要保留所有行的公式和其他内容不变,请执行以下操作:

With loSource
   .Range.AutoFilter
   .DataBodyRange.Specialcells(xlCellTypeConstants).ClearContents
End With


除了不会清除公式之外,这与@Readify的建议接近。

10-05 19:47