Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create Table in Excel Worksheet using VBA

I have this code below that will auto select a range. Does anyone know how I can add code to create a table to the selected range?

Thanks!

Sub DynamicRange()
'Best used when first column has value on last row and first row has a value in the last column

Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range

Set sht = Worksheets("Sheet1")
Set StartCell = Range("D9")

'Find Last Row and Column
  LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
  LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column

'Select Range
  sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select

End Sub
like image 701
Jgonzales Avatar asked Apr 26 '16 19:04

Jgonzales


People also ask

How do you create a data table in VBA?

To make the data tables, define the row start, row end, column start and column end. Then also define the range names that will be used for the row input and column input.


1 Answers

Use the following Excel VBA code snippet to add the Table object corresponding to selected Range:

Dim objTable As ListObject
Set objTable = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)

You can also apply optional styling to the added Table object like shown below:

objTable.TableStyle = "TableStyleMedium2"

More details available at MSDN: https://msdn.microsoft.com/en-us/library/office/ff823155.aspx

Hope this will help.

like image 144
Alexander Bell Avatar answered Oct 09 '22 08:10

Alexander Bell