簡體   English   中英

Excel VBA運行時錯誤1004'表不能與另一個表重疊'

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM