繁体   English   中英

动态格式化为表格Excel VBA

[英]Formatting as a table dynamically Excel VBA

我想将工作表中的某个范围格式化为Excel中的表格。 格式总是从第10行开始。为此,我编写了以下代码:

Set rng = Range(Range("B10"), Range("B10").End(xlUp).SpecialCells(xlLastCell))
Set table = Sheets("Results").ListObjects.Add(xlSrcRange, rng, , xlYes)
table.TableStyle = "TableStyleMedium13"

到目前为止,格式化是从第10行到工作表的末尾-甚至是空行。 但是,我希望仅在数据的最后一行之前对表格进行格式化,并且鉴于数据量会有所变化,因此可以动态地执行此操作。 我怎样才能做到这一点?

下面的代码将从B10到最后一行的所有单元格格式化,并在B列中提供数据(如果有空格,它还将在中间格式化空白行)。

Dim LastRow As Long

With Sheets("Results")
    ' find last row with data in Column B
    LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row

    ' set Rng from B10 untill last row with data in Column B
    Set Rng = Range("B10:B" & LastRow)
    Set Table = .ListObjects.Add(xlSrcRange, Rng, , xlYes)
    Table.TableStyle = "TableStyleMedium13"
End With
Range("B" & Rows.Count).End(xlUp)

这应该起作用-将仅标识最后填充的行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM