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 เปลี่ยนไปโดยอัตโ...