Vba Excel宏-选择所有数据和格式为表格的单元格

Vba Excel宏-选择所有数据和格式为表格的单元格,vba,excel,Vba,Excel,是否可以编写一个宏来格式化任何活动选择的表格?例如,我有一个宏,它基本上只执行Ctrl+Shift+End range选择。之后,我希望宏能够将所选范围格式化为表格,但是当我在VBA中记录此操作时,它将使用范围地址,这在不同的工作表中并不总是相同的 Sub A_SelectAllMakeTable() Range("A1").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select ActiveSheet.ListOb

是否可以编写一个宏来格式化任何活动选择的表格?例如,我有一个宏,它基本上只执行Ctrl+Shift+End range选择。之后,我希望宏能够将所选范围格式化为表格,但是当我在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

提前感谢。

请在当前选择中尝试此选项:

Sub A_SelectAllMakeTable2()
    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)
    tbl.TableStyle = "TableStyleMedium15"
End Sub
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
或宏的等效项(用于Ctrl+Shift+End range选择):


它总是从A1开始吗?你应该看到这一点,它将帮助你理解一些重要的概念:。当然,在你的特殊情况下,你可以从一个选择开始,但是你应该把它放在一个变量中。就像@pnuts说的,这已经是宏的一部分了,它们甚至包括Ctrl+L的热键,你甚至不需要选择整个范围,只需要选择你想成为表的范围内的任何单元格。谢谢你的建议(我不知道快捷方式)但是,工作表中有一些空白单元格,即使数据超出这些单元格,Ctrl+L也会在这些单元格处结束。