Excel VBA การใช้ vlookup ข้าม Sheet
![รูปภาพ](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5IU-O7FaJoC2bgGC9q2BamkXRyUMRdU8upj6T3xsgUmgHDfa8-FY1c1QogNS8PIw2K1tPyOvPrtbtL2T5mLBuLDXe0RDBB-eUHGekri63umFfEdKYr1nkqCzJFazCbuxfazlK2u3dWFg/s320/vlkup_d_sheets_01.jpg)
โดยปกติ ถ้าเราใช้สูตร 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 เปลี่ยนไปโดยอัตโ