XT58 – การใช้สูตร IF ในการเปลี่ยนเส้นทางการส่งค่า

ตามปกติสูตรที่สร้างลงไปในเซลล์จะทำหน้าที่คำนวณหรือรับค่าที่ลิงค์มาจากเซลล์ต้นทาง ส่วนการส่งค่าจากเซลล์ต้นทางไปยังเซลล์ปลายทางโดยไม่ต้องสร้างสูตรลงไปในเซลล์นั้นไม่สามารถทำได้โดยวิธีปกติทั่วไป แต่ต้องเขียนรหัส VBA เข้ามาช่วย

image164

ตัวอย่าง กำหนดให้ส่งค่าจากเซลล์ 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

  1. ชุดคำสั่งนี้จะรับค่าที่เก็บไว้ในเซลล์ที่ตั้งชื่อไว้ว่า Source ไปเก็บไว้ที่ตัวแปรที่มีชื่อว่า MyVar
  2. จากนั้นค่าที่เก็บไว้ใน MyVar จะถูกส่งต่อไปยัง Formula Name ที่ตั้งชื่อไว้ว่า Target
  3. เนื่องจาก Target เป็นสูตร =IF( Source<0, Target1, Target2) จึงทำหน้าที่ตรวจสอบค่าที่รับมาจาก Source ก่อนแล้วจึงเลือกส่งค่าไปยังเซลล์ที่ตั้งชื่อว่า Target1 หรือ Target2 ตามเงื่อนไขที่กำหนดไว้ข้างต้นต่อไป