实例需求:示例文件中的表格(有时称为超级表)如下图所示。

现在需要清空表格内容,保留一个空行,如下图所示。

此需求的核心点在于,VBA中表格对象,并不是Table,而是ListObject,只要定位对象之后,处理起来并不复杂。
示例代码如下。
Sub Demo()
Dim objTab As ListObject
Dim rng As Range
Set objTab = ActiveSheet.ListObjects(1)
Set rng = objTab.Range
rng.Offset(1, 0).Clear
objTab.Resize rng.Resize(2, rng.Columns.Count)
Set objTab = Nothing
Set rng = Nothing
End Sub
【代码解析】
第4行代码使用ListObjects对象集合定位工作表中的表格。
第5行代码获取表格的单元格区域。
第6行代码将表格的单元格区域向下偏移一行,并清空
第7行代码使用resize方法,将表格的范围缩减为两行,列数保持不变。
第8~9行代码是否对象变量所占用的系统资源。