Excel VBA运行时错误1004'表不能重叠另一个表'

这个运行时错误,“一个表不能重叠另一个表”,每当我打开我的xlsm文件。 点击debugging窗口后,下面一行VBA代码被突出显示。

Set tbl = Sheets("DataSheet").ListObjects.Add(xlSrcRange, rng, , xlYes) 

下面附上完整版本供您参考。

 Private Sub Workbook_Open() Dim tbl As ListObject Dim rng As Range 'Ungroup worksheets ThisWorkbook.Sheets("DataSheet").Select Set rng = Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)) Set tbl = Sheets("DataSheet").ListObjects.Add(xlSrcRange, rng, , xlYes) tbl.Name = "ReportTable" tbl.TableStyle = "TableStyleMedium7" End Sub 

那么我该怎么办才能解决这个问题呢? 为什么在那里给出一个错误?

你可以在添加表之前调用它,或者修改它来更具体一些:

 For Each tbl In Sheets("DataSheet").ListObjects tbl.Unlist Next 

注意:tbl.Unlist会将表转换为正常范围,但保留数据,tbl.Delete将删除一个表,并且还将删除表中的数据。

以下是我结束的解决scheme。 似乎正在解决这个问题。

  Dim tblExists As Boolean 'Check the same already exists tblExists = False For Each o In Sheets("DataSheet").ListObjects If o.Name = "ReportTable" Then tblExists = True Next o 'If exists, delete the table first If (tblExists) Then Sheets("DataSheet").ListObjects("ReportTable").Unlist End If