Excel VBA การใช้ vlookup ข้าม Sheet
โดยปกติ ถ้าเราใช้สูตร Vlookup ก็สามารถข้าม Sheet ได้ โดยการอ้างอิง ชื่อ Sheet!ข้อมูล แต่ถ้าจะใช้ VBA มีหลักการ ดังนี้
- ใช้สูตร FormulaR1C1 แทนการใช้ WorksheetFunction เพื่อให้สะดวก ในการเปลี่ยนตำแหน่งเซลล์ สำหรับ lookup_value
- ให้ Excel หาจำนวนข้อมูล เพื่อการกำหนดขอบเขต
ตัวอย่าง
ในตัวอย่างต่อไปนี้ จะสร้างปุ่ม เพื่อเรียกข้อมูลจากอีก Sheet มาวางไว้ในตำแหน่งที่ต้องการ
วิธีการ
- เปิดโปรแกรม Excel ที่ Sheet1 พิมพ์ข้อมูล และสร้างปุ่ม ดังภาพ
- ที่ Shhet2 พิมพ์ข้อมูล ดังภาพ
- เขียน VBA code ที่ปุ่ม ดังนี้
Sub Button1_Click() Dim lLastRow As Long With Sheets("Sheet1") lLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row With .Range("B2:B" & lLastRow) .FormulaR1C1 = "=Vlookup(RC1,'Sheet2'!R1C4:R5C5,2,FALSE)" End With End With End Sub
หมายเหตุ
ค่า RC1 จะเปลี่ยนไปตามการวนรอบ เช่น เป็น R2C1, R3C1, R4C1 ... เป็นต้น ซึ่งจะทำให้ค่า ที่นำมาเป็นเงื่อนไขการค้นหา หรือ lookup_value เปลี่ยนไปโดยอัตโนมัติ
- เมื่อคลิกปุ่ม ข้อมูลจาก Sheet2 จะมาปรากฏที่ Sheet1 ดังภาพ
ความคิดเห็น
แสดงความคิดเห็น