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

时间:2014-02-04 16:27:49

标签: excel vba excel-vba

是否可以编写一个可以从任何活动选择中格式化表格的宏?例如,我有一个宏,基本上只会执行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 个答案:

答案 0 :(得分:28)

尝试使用此选项进行当前选择:

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

或等效的宏(用于Ctrl + Shift +结束范围选择):

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