วิธีหาบรรทัดสุดท้ายของคอลัมน์ A ด้วย VBA

การหาบรรทัดสุดท้ายของแถว (Row) ในบางครั้งอาจเจอเคสต่างๆ เช่น แต่ละบรรทัดจะยึดตามคอลัมน์ A แต่ คอลัมน์ A จะมีข้อมูลที่เว้นว่างอยู่ด้วย เราจึงไม่สามารถหาบรรทัดสุดท้ายด้วยโค้ด Range(“A1”).End(xlDown).Select เพราะจะทำให้ได้ข้อมูลที่ผิดพลาด

 

จากตัวอย่างเราจะใช้โค้ด ดังนี้

Sub LastRow()
NumRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox NumRow ' 20
End Sub

NumRow = Cells(Rows.Count, 1).End(xlUp).Row

รูปแบบ Cells จะมีคุณสมบัติ (property) คือ Cells([RowIndex],[ColumnIndex])

คำสั่ง Rows.Count ในคุณสมบัติของ RowIndex หมายความว่า “แถวทั้งหมดของ Excel ซึ่งจำนวนแถวทั้งหมดนั้นขึ้นอยู่กับเวอร์ชั่นของ MS Excel

คำสั่ง 1 ในคุณบัติของ ColumnIndex หมายถึง คอลัมน์ที่1 ก็คือ “A”

 

ดังนั้นคำสั่ง Cells(Rows.Count,1).End(xlUp).Row

คือไปที่แถวสุดท้ายของ Excel และ กระโดดขึ้นมาจนเจอข้อความใดๆ