Vba: วิธีค้นหาบรรทัดที่ใช้ล่าสุด
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้ใน VBA เพื่อค้นหาแถวที่ใช้ล่าสุดในแผ่นงาน Excel:
Sub FindLastRow()
Range(" D2 ")=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub
ตัวอย่างนี้ค้นหาแถวสุดท้ายที่ใช้ในแผ่นงานปัจจุบันและส่งกลับผลลัพธ์ในเซลล์ D2
หากคุณต้องการแสดงบรรทัดสุดท้ายของกล่องข้อความแทน คุณสามารถใช้ไวยากรณ์ต่อไปนี้:
Sub FindLastRow()
Dim LastRow As Long
LastRow=Cells.Find("*", Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
MsgBox " Last Row: " & LastRow
End Sub
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ
ตัวอย่างที่ 1: ค้นหาแถวสุดท้ายโดยใช้ VBA และแสดงผลลัพธ์ในเซลล์
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
เราสามารถสร้างแมโครต่อไปนี้เพื่อค้นหาบรรทัดสุดท้ายที่ใช้ในแผ่นงาน Excel นี้และแสดงผลลัพธ์ในเซลล์ D2 :
Sub FindLastRow()
Range(" D2 ")=Cells.Find("*",Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดสังเกตว่าเซลล์ D2 มีค่า 11
นี่บอกเราว่าแถวสุดท้ายที่ใช้ในแผ่นงานนี้คือแถวที่ 11
นอกจากนี้ โปรดทราบว่าหากคุณมีเซลล์ว่างก่อนเซลล์ที่ใช้ แมโครนี้จะค้นหาแถวที่ใช้ล่าสุดเสมอ
ตัวอย่างเช่น สมมติว่าเราเรียกใช้แมโครบนชุดข้อมูลต่อไปนี้:
เซลล์ D2 มีค่า 16 เนื่องจากเป็นแถวสุดท้ายที่มีค่า
ตัวอย่างที่ 2: ค้นหาแถวสุดท้ายโดยใช้ VBA และแสดงผลลัพธ์ในกล่องข้อความ
สมมติว่าเราต้องการค้นหาแถวที่ใช้ล่าสุดในแผ่นงานและแสดงหมายเลขแถวในกล่องข้อความ
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
Sub FindLastRow()
Dim LastRow As Long
LastRow=Cells.Find("*", Range(" A1 "),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
MsgBox " Last Row: " & LastRow
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
กล่องข้อความบอกเราว่าแถวสุดท้ายที่ใช้ในแผ่นงานคือแถวที่ 11
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับวิธี VBA Find ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีคำนวณค่าเฉลี่ยของช่วง
VBA: วิธีนับจำนวนแถวในช่วง
VBA: วิธีลบค่าที่ซ้ำกันในช่วง