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