如何在不破坏表格的情况下选择清除表格内容?

Spe*_*azy 14 excel vba excel-vba excel-2010

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

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

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

Dou*_*ncy 33

怎么样:

ACell.ListObject.DataBodyRange.Rows.Delete
Run Code Online (Sandbox Code Playgroud)

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

编辑:我将修改你之前的帖子中我的答案的一部分,因为它主要是你想要的.这只留下一行:

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
Run Code Online (Sandbox Code Playgroud)

如果你想保留所有行的公式和诸如此类的东西,那么就这样做:

With loSource
   .Range.AutoFilter
   .DataBodyRange.Specialcells(xlCellTypeConstants).ClearContents
End With
Run Code Online (Sandbox Code Playgroud)

哪个接近@Readify所建议的,除了它不会清除公式.

  • + 1耐心处理这个问题:) (4认同)

Rea*_*idy 7

尝试清除数据(而不是整个表格,包括标题):

ACell.ListObject.DataBodyRange.ClearContents
Run Code Online (Sandbox Code Playgroud)