2016-11-21 155 views
2

我想在Excel中將工作表中的某個範圍格式化爲表格。該格式將始終排在10 開始。爲了做到這一點,我寫了下面的代碼:格式化爲動態表格Excel VBA

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

截至目前,該格式是從第10行進行,直到工作結束 - 即使是在空行。但是,我希望表格只能格式化到最後一行數據,並且考慮到數據量會有所不同,因此會動態地執行此操作。我怎樣才能做到這一點?

回答

3

下面的代碼將格式化所有單元格從「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 
+1

它工作。謝謝! – franciscofcosta

+1

@franciscofcosta歡迎您,請標記小** V **標記爲答案 –

1
Range("B" & Rows.Count).End(xlUp) 

這應該工作 - 將會完全確定最後一行人口。