ตามปกติสูตรที่สร้างลงไปในเซลล์จะทำหน้าที่คำนวณหรือรับค่าที่ลิงค์มาจากเซลล์ต้นทาง ส่วนการส่งค่าจากเซลล์ต้นทางไปยังเซลล์ปลายทางโดยไม่ต้องสร้างสูตรลงไปในเซลล์นั้นไม่สามารถทำได้โดยวิธีปกติทั่วไป แต่ต้องเขียนรหัส VBA เข้ามาช่วย
ตัวอย่าง กำหนดให้ส่งค่าจากเซลล์ Source ไปยังเซลล์ Target1 หรือ Target2 ตามเงื่อนไขต่อไปนี้
- หาก Source มีค่าน้อยกว่า 0 เช่นมีค่าเป็นเลข -111 ให้ส่งค่า -111 ไปยังเซลล์ Target1
- หาก Source มีค่ามากกว่าหรือเท่ากับ 0 เช่นมีค่าเป็นเลข 222 ให้ส่งค่า 222 ไปยังเซลล์ Target2
เริ่มต้นจากให้ตั้งชื่อ Source, Target1, Target2 ให้กับเซลล์ C2, C5 ,C6 ตามลำดับและตั้งชื่อ Target เป็น Formula Name มีค่าเป็นสูตร
=IF( Source<0, Target1, Target2)
จากนั้นให้สร้างชุดคำสั่งนี้ลงไปใน Visual Basic Editor
Sub SendData()
MyVar = [Source]
[Target] = MyVar
End Sub
- ชุดคำสั่งนี้จะรับค่าที่เก็บไว้ในเซลล์ที่ตั้งชื่อไว้ว่า Source ไปเก็บไว้ที่ตัวแปรที่มีชื่อว่า MyVar
- จากนั้นค่าที่เก็บไว้ใน MyVar จะถูกส่งต่อไปยัง Formula Name ที่ตั้งชื่อไว้ว่า Target
- เนื่องจาก Target เป็นสูตร =IF( Source<0, Target1, Target2) จึงทำหน้าที่ตรวจสอบค่าที่รับมาจาก Source ก่อนแล้วจึงเลือกส่งค่าไปยังเซลล์ที่ตั้งชื่อว่า Target1 หรือ Target2 ตามเงื่อนไขที่กำหนดไว้ข้างต้นต่อไป