ฟังก์ชัน Excel VBA Val
ฟังก์ชัน Val ใน vbaอยู่ภายใต้ฟังก์ชันสตริงซึ่งเป็นฟังก์ชัน inbuilt ใน VBA ซึ่งใช้เพื่อรับค่าตัวเลขจากตัวแปรข้อมูลสมมติว่าตัวแปรมีค่าเป็น A10 ฟังก์ชัน val จะให้ 10 เป็นเอาต์พุต รับสตริงเป็นอาร์กิวเมนต์และส่งกลับตัวเลขที่มีอยู่ในสตริง
VAL ย่อมาจาก VALUE ในคำศัพท์ VBA ฟังก์ชันนี้จะแปลงสตริงที่มีตัวเลขเป็นจำนวนจริง ตัวอย่างเช่นหากคุณใส่สตริงข้อความ“ 1234 Global” ก็จะส่งคืนเฉพาะส่วนที่เป็นตัวเลขเช่น 1234
บ่อยครั้งเมื่อเราดาวน์โหลดหรือรับข้อมูลจากหมายเลขเว็บมักจะจัดเก็บเป็นค่าข้อความในสเปรดชีต การแปลงข้อความเป็นตัวเลขเป็นงานที่ยากที่สุดหากคุณไม่ทราบถึงฟังก์ชันที่ถูกต้องใน excel ในฐานะฟังก์ชันแผ่นงานปกติเรามีฟังก์ชันที่เรียกว่า VALUE ซึ่งจะแปลงสตริงทั้งหมดที่แสดงถึงตัวเลขให้เป็นตัวเลขที่แน่นอนด้วยฟังก์ชันง่ายๆในแผ่นงาน ในบทความนี้เราจะแสดงให้เห็นว่าสิ่งนี้สามารถทำได้ใน VBA โดยใช้ฟังก์ชัน VAL ได้อย่างไร
ไวยากรณ์
มีอาร์กิวเมนต์เดียวคือ String
- สตริง:มันเป็นเพียงค่าสตริงที่เราพยายามดึงส่วนที่เป็นตัวเลขออกมา
ดังนั้นฟังก์ชัน VAL จะแปลงสตริงที่ให้มาเป็นค่าตัวเลข
หมายเหตุ:ฟังก์ชัน VAL จะละเว้นอักขระเว้นวรรคและอ่านตัวเลขต่อจากอักขระช่องว่างหรืออักขระต่อไปตัวอย่างเช่นหากสตริงที่ให้มาคือ "145 45 666 3" จะไม่สนใจอักขระเว้นวรรคและส่งคืนผลลัพธ์เป็น "145456663"
ตัวอย่างฟังก์ชัน VAL ใน Excel VBA
คุณสามารถดาวน์โหลดเทมเพลต Excel VBA Val Function ได้ที่นี่ - เทมเพลต Excel ของ VBA Val Functionตัวอย่าง # 1
ลองดูตัวอย่างแรกด้วยตัวเลขง่ายๆเช่น“ 14 56 47”
โค้ดด้านล่างนี้เหมาะสำหรับคุณ
รหัส:
Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'แปลงด้านบนเป็น 145647 MsgBox k End Sub
เมื่อคุณเรียกใช้รหัส VBA โดยใช้ปุ่ม F5 หรือด้วยตนเองระบบจะส่งคืนผลลัพธ์เป็น“ 145647” โดยละเว้นอักขระช่องว่างทั้งหมดดังที่แสดงในภาพด้านล่าง
ตัวอย่าง # 2
ในตัวอย่างนี้เราจะเห็นผลลัพธ์ของสตริงคือ“ +456”
รหัส:
Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'แปลงด้านบนเป็น 456 MsgBox k End Sub
คุณสามารถรันโค้ดนี้ด้วยตนเองหรือผ่านคีย์ F5 เพื่อส่งคืนค่าเป็น 456 โดยละเว้น +456
ตัวอย่าง # 3
ตอนนี้ให้ลองใช้ตัวเลขเดียวกันกับเครื่องหมายลบ
รหัส:
Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'แปลงด้านบนเป็น -456 MsgBox k End Sub
รหัสนี้จะส่งคืนค่าเป็น -456 เท่านั้นเนื่องจากควรแสดงตัวเลขที่มีเครื่องหมายโอเปอเรเตอร์
ตัวอย่าง # 4
ตอนนี้ให้ลองสตริง "100 Kg" นี้
รหัส:
Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'ละเว้น KG และส่งกลับเพียง 100 MsgBox k End Sub
หากคุณเรียกใช้รหัสนี้ด้วยตนเองหรือใช้ปุ่ม F5 รหัสด้านบนนี้จะละเว้น“ KG” และส่งกลับเพียง“ 100” ในกล่องข้อความ VBA
ตัวอย่าง # 5
ตอนนี้ลองใช้สตริงวันที่คือ“ 14-05-2018”
รหัส:
Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'ส่งคืน 14 เป็นผลลัพธ์ MsgBox k End Sub
โค้ดด้านบนจะคืนค่า 14 เป็นผลลัพธ์เนื่องจากฟังก์ชัน VAL สามารถดึงค่าตัวเลขเท่านั้นจนกว่าจะพบอักขระอื่นที่ไม่ใช่ตัวเลข
ตัวอย่าง # 6
ลองใช้สตริง“ 7459Good456”
รหัส:
Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") 'ส่งกลับ 7459 เป็นผลลัพธ์ MsgBox k End Sub
สิ่งนี้จะดึงตัวเลขออกมาจนกว่าจะพบอักขระที่ไม่ใช่ตัวเลขเช่นผลลัพธ์คือ 7459 แม้ว่าจะมีค่าตัวเลขตามหลังค่าที่ไม่ใช่ตัวเลข "ดี" แต่ก็จะละเว้นตัวเลขโดยสิ้นเชิงหลังจากนั้น
ตัวอย่าง # 7
ลองใช้ค่าสตริง“ H 12456”
รหัส:
Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'ส่งคืน 0 เป็นผลลัพธ์ MsgBox k End Sub
รันโค้ดด้านบนโดยใช้คีย์ลัด F5 หรือด้วยตนเองจากนั้นจะส่งคืนผลลัพธ์เป็นศูนย์ เนื่องจากอักขระตัวแรกสุดของสตริงที่เราระบุเป็นอักขระที่ไม่ใช่ตัวเลขดังนั้นผลลัพธ์จึงเป็นศูนย์
ตัวอย่าง # 8
ลองใช้สตริงนี้“ 24545 2”.
รหัส:
Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'ส่งกลับ 24545.2 เป็นผลลัพธ์ MsgBox k End Sub
โค้ดส่งคืนผลลัพธ์เป็น 24545.2 เนื่องจากฟังก์ชัน VBA VAL จะพิจารณาอักขระจุด (.) เป็นอักขระทศนิยมและส่งกลับผลลัพธ์ตามนั้น