[英]Excel VBA run-time error 1004 'a table can't overlap another table'
每次打開我的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
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
那么我該怎么做才能解決這個問題呢? 為什么在那條線上出錯?
以下是我最終得到的解決方案。 似乎是在解決這個問題。
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
你可以在添加表之前調用它,或者將其修改為更具體:
For Each tbl In Sheets("DataSheet").ListObjects
tbl.Unlist
Next
注意:tbl.Unlist會將表轉換為正常范圍但保留數據,tbl.Delete將刪除表,並且還將刪除表中的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.