Excel VBA运行时错误1004“一个表不能与另一个表重叠”
每次打开xlsm文件时都会发生此运行时错误,即一个表不能与另一个表重叠。单击调试窗口后,下面一行VBA代码高亮显示Excel VBA运行时错误1004“一个表不能与另一个表重叠”,vba,excel,error-handling,runtime-error,Vba,Excel,Error Handling,Runtime Error,每次打开xlsm文件时都会发生此运行时错误,即一个表不能与另一个表重叠。单击调试窗口后,下面一行VBA代码高亮显示 Set tbl = Sheets("DataSheet").ListObjects.Add(xlSrcRange, rng, , xlYes) 以下附上完整版本仅供参考 Private Sub Workbook_Open() Dim tbl As ListObject Dim rng As Range 'Ungroup worksheets Th
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将删除表格,并删除表格中的数据。您可以在添加表格之前调用此选项,或将其修改为更具体的选项:
For Each tbl In Sheets("DataSheet").ListObjects
tbl.Unlist
Next
注意:tbl.Unlist将使表格进入正常范围,但保留数据,tbl.Delete将删除表格并删除表格中的数据。以下是我最终得出的解决方案。似乎正在解决这个问题
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
下面是我最终得到的解决方案。似乎正在解决这个问题
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
是的,这也正是我想到的。谢谢你的快速回答。另外,我刚刚添加了一个条件来检查表是否已经存在。是的,这也是我所想到的。谢谢你的快速回答。另外,我只是添加了条件来检查表是否已经存在。