An Excel Table is used to manage a group of related data easier, you can turn a range of cells into a Microsoft Office Excel table (previously known as an Excel list). A table typically contains related data in a series of worksheet rows and columns that have been formatted as a table.
Sub CreateTable() Dim ListObj As ListObject On Error Resume Next Set ListObj = ActiveSheet.ListObjects("MyData") On Error GoTo 0 ' if table does not exist, then create it If ListObj Is Nothing Then Set ListObj = ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$2:$F$10"), , xlYes) ListObj.Name = "MyData" 'decorate table ListObj.TableStyle = "TableStyleLight2" End If End Sub
This code has been tested on Microsoft Word and Excel 2013.
download sample spreadsheetOption Explicit Dim ListObj As ListObject Private Sub cmdCreate_Click() On Error Resume Next Set ListObj = ActiveSheet.ListObjects("MyData") On Error GoTo 0 ' if table does not exist, then create it If ListObj Is Nothing Then Set ListObj = ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$2:$F$10"), , xlYes) ListObj.Name = "MyData" 'decorate table ListObj.TableStyle = "TableStyleLight2" End If End Sub Private Sub cmdDeleteTable_Click() If ListObj.Active Then ListObj.Unlist End If End Sub Private Sub cmdInsertRow_Click() Dim ListObj As ListObject Dim ws As Worksheet Dim Als() As Variant Dim rng As Range Set ws = ActiveSheet ' Get reference to table Set ListObj = ws.ListObjects("MyData") If ListObj.InsertRowRange Is Nothing Then ' List already has data Set rng = ListObj.ListRows.Add.Range Else ' List is empty Set rng = ListObj.InsertRowRange End If End Sub Private Sub cmdDeleteRow_Click() End Sub