VBA Create Dynamic Table in Excel. Let us see different examples and step by step instructions. In this tutorial we use ListObjects collection to create table. And also use ListObject object. Which belongs to ListObjects collection. We have different examples with with different table names with different styles. You can also change table style, name of the table and sheet name.
First Example to Create Dynamic Table in Excel VBA
Let us see the example to Create Table dynamically in Excel VBA
'Create Dynamic Table in Excel VBA Sub VBAF1_Create_Dynamic_Table() 'Variable Declaration Dim tableListObj As ListObject Dim TblRng As Range 'Sheet Name With Sheets("Table") 'Find Last Row lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 'Find Last Column lLastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column 'Range to create table Set TblRng = .Range("A1", .Cells(lLastRow, lLastColumn)) 'Create table in above specified range Set tableListObj = .ListObjects.Add(xlSrcRange, TblRng, , xlYes) 'Specifying table name tableListObj.Name = "FirstDynamicTable" 'Specify table style tableListObj.TableStyle = "TableStyleMedium14" End With 'Display message on the screen MsgBox "Table has created successfully.", vbInformation, "VBAF1" End Sub
Output: Here is the following output screenshot for the above macro. The output message displays on the system screen.
Second Example for Dynamic Table creation in Excel VBA
Here is another example for dynamic table creation in Excel VBA.
Sub VBAF1_Create_Dynamic_Table1() 'Variable Declaration Dim tableListObj As ListObject Dim TblRng As Range 'Sheet Name With Sheets("Table") 'Select cell - You can change as per your requirement .Range("A1").Select 'Selects the current region Selection.CurrentRegion.Select 'Create table in above specified range Set tableListObj = .ListObjects.Add(xlSrcRange, Selection, , xlYes) 'Specifying table name tableListObj.Name = "SecondDynamicTable1" 'Specify table style tableListObj.TableStyle = "TableStyleMedium15" End With 'Display message on the screen MsgBox "Table has created successfully.", vbInformation, "VBAF1" End Sub
Output: Here is the following output screenshot for the above macro. The output message displays on the system screen.
Third Example to Create Table Dynamically in Excel VBA
Let us see one more example to create table dynamically in Excel VBA.
Sub VBAF1_Create_Dynamic_Table2() 'Variable Declaration Dim tableListObj As ListObject Dim TblRng As Range 'Sheet Name With Sheets("Table") 'Find Last Row lLastRow = .UsedRange.Rows.Count 'Find Last Column lLastColumn = .UsedRange.Columns.Count 'Dynamic Range to create table Set TblRng = .Range("A1", .Cells(lLastRow, lLastColumn)) 'Create table in above specified range Set tableListObj = .ListObjects.Add(xlSrcRange, TblRng, , xlYes) 'Specifying table name tableListObj.Name = "ThirdDynamicTable" 'Specify table style tableListObj.TableStyle = "TableStyleMedium16" End With 'Display message on the screen MsgBox "Table has created successfully.", vbInformation, "VBAF1" End Sub
Output: Here is the following output screenshot for the above macro. The output message displays on the system screen.
Note: Before running above macro, create sheet called ‘Table’, otherwise change sheet name in the above specified macro.
Table Name: You can find the table name by following the below specified instructions.
- You can select the table range.
- Go to Table Design from the Excel ribbon.
- Go to Properties group.
- You can see the selected name of the table under Table Name in the textbox.
- You can also edit table name manually in the specified box and press enter.
Instructions to Run VBA Macro Code or Procedure:
You can refer the following link for the step by step instructions.
Instructions to run VBA Macro Code
Other Useful Resources:
Click on the following links of the useful resources. These helps to learn and gain more knowledge.
VBA Tutorial VBA Functions List VBA Arrays in Excel VBA Tables and ListObjects
VBA Editor Keyboard Shortcut Keys List VBA Interview Questions & Answers Blog