【问题标题】:VBA: range defined by a fixed cell and an active cellVBA:由固定单元格和活动单元格定义的范围
【发布时间】:2021-12-02 18:29:41
【问题描述】:

我正在尝试使用宏将数据格式化为表格。无论占用多少行列数,它都需要工作,

我尝试了以下方法,但导致错误:

Sub Macro1()
Set **selectedCell** = Application.ActiveCell
    Range(Selection, Selection.End(xlUp)).Select
    Range(Selection, Selection.End(xlToLeft)).Select
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:**selectedCell**"), , xlYes).Name = _
        "Table1"
    Range("Table1[#All]").Select
    ActiveSheet.ListObjects("Table1").TableStyle = "TableStyleLight8"
    Cells.Select
End Sub

任何想法如何解决这个问题?

提前致谢。

【问题讨论】:

  • .CurrentRegion.Address

标签: excel vba range


【解决方案1】:

您无需在代码中选择

您可以使用ActiveCell 中的CurrentRegion - 它已经返回了一个范围 - 所以不需要像 Nathan_sav 建议的那样使用地址。

此外,ListObjects.Add 返回一个 ListObject - 您可以使用它来设置其他属性。

Dim lo As ListObject
Set lo = ActiveSheet.ListObjects.Add(xlSrcRange, ActiveCell.CurrentRegion, , xlYes)

With lo
    .Name = "Table1"
    .TableStyle = "TableStyleLight8"
End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多