2016-09-20 12 views
0

xlsmファイルを開くたびに、このランタイムエラー「別のテーブルと重複することはできません」が発生します。デバッグウィンドウをクリックすると、次のVBAコード行が強調表示されます。Excel VBA実行時エラー1004 'テーブルが別のテーブルと重複することはありません'

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 

この問題を解決するにはどうすればよいですか?なぜその行にエラーが表示されますか?

答えて

1

以下は私が解決した解決策です。問題を解決しているようだ。

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 
1

あなたは、テーブルを追加する前にこのメソッドを呼び出し、またはより具体的にそれを修正することができます:

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

注:tbl.Unlistが正常範囲にテーブルを回すが、データを残し、tbl.Delete意志ますテーブルを削除し、テーブル内のデータも削除します。

+0

これはまさに私が思いついたものです。迅速な答えをありがとう。さらに、テーブルがすでに存在するかどうかを確認する条件を追加しました。 – woodykiddy

関連する問題