动态格式化为表格 Excel VBA

fra*_*sta 2 excel formatting 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"
Run Code Online (Sandbox Code Playgroud)

截至目前,格式设置是从第 10 行到工作表末尾完成的 - 即使在空行中也是如此。但是,我希望只对表格的最后一行数据进行格式化,并且鉴于数据量会有所不同,因此可以动态地执行此操作。我怎样才能做到这一点?

Sha*_*ado 5

下面的代码将格式化从“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
Run Code Online (Sandbox Code Playgroud)