Excel Macro - выбор всех ячеек с данными и их формат в виде таблицы

Можно ли написать макрос, который может форматировать таблицу из любого активного выбора? Например, у меня есть макрос, который в основном будет просто выбирать диапазон Ctrl + Shift + End. После этого я хотел бы, чтобы макрос мог форматировать выбранный диапазон в виде таблицы, однако, когда я записываю это действие в VBA, он будет использовать адреса диапазона, которые не всегда будут одинаковыми от листа к листу.

Sub A_SelectAllMakeTable()
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$AO$2959"), , xlYes).Name _
    = "Table1"
Range("A1:AO2959").Select
ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleMedium15"
End Sub

Спасибо заранее.

Ответ 1

Попробуйте этот вариант для текущего выбора:

Sub A_SelectAllMakeTable2()
    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)
    tbl.TableStyle = "TableStyleMedium15"
End Sub

или эквивалент вашего макроса (для выбора Ctrl + Shift + End):

Sub A_SelectAllMakeTable()
    Dim tbl As ListObject
    Dim rng As Range

    Set rng = Range(Range("A1"), Range("A1").SpecialCells(xlLastCell))
    Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, rng, , xlYes)
    tbl.TableStyle = "TableStyleMedium15"
End Sub