格式化为一个表格dynamicExcel 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行开始直到工作表的末尾 – 即使在空行中。 但是,我希望表只能格式化到最后一行数据,并且要考虑到数据量会发生变化才能dynamic地执行此操作。 我怎样才能做到这一点?

下面的代码将从“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) 

这应该工作 – 将简单地识别最后填充的行。