วิธีการส่งกลับค่าจากฟังก์ชัน vba (พร้อมตัวอย่าง)


หากต้องการคืนค่าจากฟังก์ชันใน VBA คุณต้องกำหนดค่าให้กับชื่อฟังก์ชัน

ตัวอย่างเช่น เราสามารถสร้างฟังก์ชันต่อไปนี้เพื่อหารสองค่าแล้วส่งคืนผลลัพธ์การหาร:

 Function DivideValues(x,y)
    DivideValues = x / y
End Function

ชื่อของฟังก์ชันนี้คือ DivideValues ดังนั้นในการส่งคืนค่าจากฟังก์ชันนี้ เราจำเป็นต้องกำหนดผลลัพธ์ของ x/y ให้กับตัวแปรที่มีชื่อเดียวกันจาก DivideValues

ถ้าฟังก์ชันของคุณเกี่ยวข้องกับตรรกะ If Else คุณสามารถกำหนดค่าให้กับชื่อฟังก์ชันได้หลายครั้ง

ตัวอย่างเช่น คุณสามารถสร้างฟังก์ชันต่อไปนี้ที่ส่งคืน “ไม่สามารถหารด้วยศูนย์” ได้ หากคุณพยายามหารด้วยศูนย์ หรือเพียงแค่ส่งคืนผลลัพธ์ของการหาร:

 Function DivideValues(x,y)
    If y = 0 Then
      DivideValues = " Cannot divide by zero "
    Else
      DivideValues = x / y
    End If
End Function

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: วิธีการส่งกลับค่าจากฟังก์ชัน VBA

สมมติว่าเราต้องการสร้างฟังก์ชันใน VBA เพื่อหารค่าของเซลล์ A2 ด้วยค่าของเซลล์ B2 :

เราสามารถสร้างฟังก์ชันต่อไปนี้เพื่อทำสิ่งนี้:

 Function DivideValues(x,y)
    DivideValues = x / y
End Function

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

ฟังก์ชันส่งคืนค่า 5 ซึ่งเป็นผลลัพธ์ของ 50 หารด้วย 10

เรายังสามารถสร้างฟังก์ชันที่ใช้ตรรกะ If Else เพื่อตรวจสอบก่อนว่าค่าที่เราหารด้วยไม่เท่ากับศูนย์หรือไม่:

 Function DivideValues(x,y)
    If y = 0 Then
      DivideValues = " Cannot divide by zero "
    Else
      DivideValues = x / y
    End If
End Function

หากเราเปลี่ยนค่าในเซลล์ B2 แล้วใช้ฟังก์ชันนี้เพื่อทำการหาร เราจะได้ผลลัพธ์ดังต่อไปนี้:

เนื่องจากเราพยายามหารด้วยศูนย์ ฟังก์ชันจึงส่งคืน “ไม่สามารถหารด้วยศูนย์” ได้

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

วิธีแสดงความคิดเห็นบล็อกโค้ดใน VBA
วิธีตรวจสอบว่ามีไฟล์อยู่โดยใช้ VBA หรือไม่
วิธีสร้างโฟลเดอร์โดยใช้ VBA

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *