ผมใช้มาโครลองเขียนแล้วคัดลอกสูตร VLookup มาใส่ไว้ใน VBA
แต่เป็นสูตรแบบ R1C1 ไม่ทราบว่าจะเขียนแบบอื่นอย่างไร เช่น อ้างชื่อเซลล์โดยตรง , Range Name , หรือแบบอื่นๆ ถ้ามีการเพิ่มหรือลบ แถวและคอลัมภ์ จะไม่ทำให้การคำนวณเปลี่ยนไปครับ
ผมใช้มาโครลองเขียนแล้วคัดลอกสูตร VLookup มาใส่ไว้ใน VBA
แต่เป็นสูตรแบบ R1C1 ไม่ทราบว่าจะเขียนแบบอื่นอย่างไร เช่น อ้างชื่อเซลล์โดยตรง , Range Name , หรือแบบอื่นๆ ถ้ามีการเพิ่มหรือลบ แถวและคอลัมภ์ จะไม่ทำให้การคำนวณเปลี่ยนไปครับ
ควรแก้ตำแหน่งอ้างอิงใน VBA ให้ใช้ range name แทนทุกตำแหน่งครับ เดิม
แก้เป็นCode:Range("G4").Value = txt1 Range("H4").Value = txt2 Range("I4").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],RC[-5]:R[10]C[-4],2)*RC[-1]"
ควรปรับเพิ่มรหัสต่อเองให้กัน error ในกรณีที่ไม่มีรายการครับCode:Private Sub cmd2_Click() Range("target")(3).Value = Application.WorksheetFunction.VLookup (txt1.Value, Range("Data"), 2, 0) * txt2.Value Range("target")(2).Value = txt2.Value Range("target")(1).Value = txt1.Value txt1.Value = "" txt2.Value = "" End Sub
ขอบคุณมากครับ
ผมขอถามเพิ่ม ขอคำอธิบายสำหรับคำสั่ง
Target=OFFSET(Ref,COUNTA(Code),0,1,3)
มีความหมายว่าอย่างไรครับเพราะลึกเกินสำหรับผม
อ่านใน Extreme ก็ยังไม่ค่อยกระจ่างครับ ขอบคุณครับ
ขอให้อ่านรายละเอียดและลองทำตามตัวอย่างในบทความตามนี้ก่อนจะถามต่อครับ
เคล็ดการเพิ่มผลงาน ลดความซับซ้อนของงานด้วย Excel VBA
ขอขอบคุณครับ จะพยายามอ่านครับ