我在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的建议接近。