Excel VBA – 删除表(包括标题和第一行)

我想从Excel中删除表格,包括标题,第一行和总计。

我把表名定义为一个string(TableName)。

我已经发现

Range(TableName).Delete 

将删除DataBodyrange,但保留标题和第一行。 和

 Range(TableName).ListObject.Delete 

将删除整个表,但留下空白。

我需要什么代码来删除整个表,不留空白?

你可以单独做(事实上,据我所知,你必须)。 在我的例子中,你不知道表的位置,但是如果你知道起始单元格,那么显然你可以把一个常量,而不是firstrow和firstcol。

 Sub deltable() Dim lastrow As Long Dim firstrow As Long Dim firstcol As Long Dim lastcol As Long Dim mytable As ListObject Set mytable = Sheets("Sheet1").ListObjects("Table3") firstrow = mytable.ListRows(1).Range.Row - 1 lastrow = mytable.ListRows.Count + firstrow + 1 firstcol = mytable.ListColumns(1).Range.Column - 1 lastcol = mytable.ListRows.Count + firstcol + 1 mytable.Unlist Sheets("Sheet1").Range(Cells(firstrow, firstcol), Cells(lastrow, lastcol)).Delete shift:=xlUp End Sub