สารบัญ
ในบทความนี้ เราจะพูดถึงวิธีการต่างๆ ในการแปลงสตริงเป็นตัวเลขใน Excel VBA เราจะดูวิธีใช้ฟังก์ชันในตัวและสร้างฟังก์ชันแบบกำหนดเองโดยใช้ฟังก์ชันเหล่านี้เพื่อแปลงสตริงเป็นตัวเลขด้วยตัวอย่างโค้ด VBA
ดาวน์โหลด Practice Workbook
ดาวน์โหลดแบบฝึกหัดนี้เพื่อทำแบบฝึกหัดขณะที่คุณกำลังอ่านบทความนี้
แปลงสตริงเป็นตัวเลข.xlsm
3 วิธีในการแปลงสตริงเป็นตัวเลข ใน Excel VBA
1. แปลงสตริงเป็นตัวเลขโดยใช้ฟังก์ชันการแปลงประเภท
Excel มี ฟังก์ชันการแปลงประเภทในตัวหลายฟังก์ชัน เราสามารถใช้มันในโค้ด VBA ของเราเพื่อแปลงจากประเภทข้อมูลสตริงเป็นประเภทข้อมูลต่างๆ ได้อย่างง่ายดาย
1.1 สตริงเป็นจำนวนเต็ม
การแปลง สตริง เป็น จำนวนเต็ม เราสามารถใช้ ฟังก์ชัน Cint ในโค้ดของเราได้ ฟังก์ชัน CInt รับเพียง หนึ่งอาร์กิวเมนต์ และนั่นควรเป็น ค่าตัวเลข มาลองโค้ดต่อไปนี้ใน Visual Code Editor
7395
กด F5 เพื่อ เรียกใช้ รหัส . ผลลัพธ์จะแสดงใน MsgBox .
ฟังก์ชัน CInt แปลง สตริงตัวเลข ค่า (“12.3” ) เป็น จำนวนเต็ม 12.
หากต้องการทำความเข้าใจเพิ่มเติมเกี่ยวกับ ฟังก์ชัน Cint ให้เรียกใช้ดังต่อไปนี้ ในตัวแก้ไขโค้ดและ สังเกต ผลลัพธ์
3619
เอาต์พุต อยู่ที่นี่ในตาม ภาพหน้าจอ .
คำอธิบายโค้ด
ในโค้ดนี้ เราใช้ สำหรับ... ลูปถัดไป เพื่อใช้ ฟังก์ชัน CInt กับสตริงของเซลล์ B3:B7 เอาต์พุต ถูกพิมพ์ในเซลล์ C3:C7 เราใช้ ฟังก์ชันเซลล์ เพื่อระบุค่าอินพุตและตำแหน่งที่จะพิมพ์ค่าเอาต์พุต
ผลลัพธ์
ฟังก์ชัน CInt แปลง 25.5 เป็น จำนวนเต็มถัดไป 26 ในทางกลับกัน แปลง 10.3 เป็น 10 ไม่ใช่ 11 เมื่อค่าตัวเลขทศนิยมน้อยกว่า .5 ฟังก์ชันจะปัดเศษลงเป็นตัวเลขเดียวกัน แต่ค่าสตริงตัวเลข ทศนิยม เปลี่ยนเป็น จำนวนเต็มถัดไป ตัวเลข ถ้ามีค่า เท่ากับ หรือ มากกว่า .5
หมายเหตุ
ค่าจำนวนเต็มมีช่วงระหว่าง -32,768 ถึง 32,767 ถ้าเราใส่ค่าตัวเลขที่ อยู่นอกช่วงนี้ Excel จะแสดง ข้อผิดพลาด .
1.2 สตริงเป็นแบบยาว
ฟังก์ชัน CLng แปลงค่าสตริงที่เป็นตัวเลขเป็น ชนิดข้อมูลแบบยาว ทำงานคล้ายกับฟังก์ชัน CInt ความแตกต่างหลักอยู่ที่ ช่วง ซึ่งอยู่ระหว่าง -2,147,483,648 และ 2,147,483,647
The code to run is here below:7718
ที่นี่ เซลล์ B3:B9 ประกอบด้วย ค่าสตริงตัวเลข และ แปลง l ตัวเลข ong อยู่ในเซลล์ C3:C9. ฟังก์ชัน CLng แปลง -32800 และ 32800 สำเร็จเป็น ตัวเลขยาว ซึ่ง ฟังก์ชัน Cint ไม่สามารถทำได้ แต่จะได้รับ ข้อผิดพลาด หากอินพุต ค่าตัวเลข อยู่นอกช่วง
1.3 สตริงเป็นทศนิยม
การใช้ฟังก์ชัน CDec เราสามารถ แปลง a ค่าสตริงตัวเลข เป็น ประเภทข้อมูลทศนิยม เรียกใช้ รหัสต่อไปนี้เพื่อ แปลง ค่า ค่าตัวเลข ในเซลล์ B3:B7 เป็นประเภทข้อมูลทศนิยม
6838
1.4 สตริงเป็นซิงเกิล
ในตัวอย่างนี้ เราจะเปลี่ยนสตริงอินพุตเป็น ประเภทข้อมูลเดี่ยว (single -ความแม่นยำทศนิยม) ตัวเลข สำหรับสิ่งนี้ เราต้องใช้ ฟังก์ชัน CSng .
ช่วงประเภทข้อมูลเดียว- (i) -3.402823E38 ถึง -1.401298E-45 สำหรับ ลบ ตัวเลข
(ii) 1.401298E-45 ถึง 3.402823E38 สำหรับ บวก ตัวเลข
รันโค้ดต่อไปนี้ในตัวแก้ไข Visual Basic
5274
ในเอาต์พุต เซลล์ B3:B9 มี ค่าสตริงตัวเลข และ ประเภทข้อมูลเดี่ยวที่แปลงแล้ว อยู่ในเซลล์ C3:C9 แต่จะมี ข้อผิดพลาด ถ้าอินพุต ค่าตัวเลข อยู่ อยู่นอกช่วง
1.5 สตริงเป็นสองเท่า
ในตัวอย่างนี้ เราจะเปลี่ยนสตริงอินพุตเป็น ประเภทข้อมูลสองเท่า (ลอยตัวความแม่นยำสองเท่า จุด) ตัวเลข สำหรับสิ่งนี้เราต้องการเพื่อใช้ ฟังก์ชัน CDbl .
ประเภทข้อมูลคู่ช่วง- (i) -1.79769313486231E308 ถึง -4.94065645841247E-324 สำหรับ ค่าลบ ตัวเลข
(ii) 4.94065645841247E-324 ถึง 1.79769313486232E308 สำหรับ บวก ตัวเลข .
เรียกใช้รหัสต่อไปนี้ในตัวแก้ไข Visual Basic
4558
ในเอาต์พุต เซลล์ B3:B9 มี ค่าสตริงตัวเลข และ ตัวเลขประเภทข้อมูลคู่ที่แปลงแล้ว อยู่ในเซลล์ C3:C9 แต่จะมี ข้อผิดพลาด หากอินพุต ค่าตัวเลข อยู่นอกช่วง
1.6 สตริงเป็นสกุลเงิน
ประเภทข้อมูล สกุลเงิน สะดวกเมื่อการคำนวณเกี่ยวข้องกับ เงิน นอกจากนี้ หากเราต้องการความแม่นยำมากขึ้นใน ค่าคงที่ – จุด การคำนวณ การใช้ประเภทข้อมูลสกุลเงินก็เป็นทางเลือกที่ดี เราจำเป็นต้องใช้ ฟังก์ชัน CCur เพื่อแปลงสตริงเป็น ประเภทข้อมูลสกุลเงิน ชนิดข้อมูล ช่วง จาก -922,337,203,685,477.5808 ถึง 922,337,203,685,477.5808.
รหัสเป็น แปลง ค่าสตริงตัวเลข ของเซลล์ B3:B7 ถึง ประเภทข้อมูลสกุลเงิน ในเซลล์ C3:C7 อยู่ที่นี่ด้านล่าง
2458
<1
1.7 สตริงเป็นไบต์
ฟังก์ชัน CByte แปลงค่าสตริงที่เป็นตัวเลขเป็น ชนิดข้อมูลไบต์ ซึ่งมีตั้งแต่ 0 ถึง 255
รหัส เป็นดังนี้ :
4497
ในเอาต์พุต เซลล์ B3:B9 มี ค่าสตริงที่เป็นตัวเลข และ ตัวเลขชนิดข้อมูลไบต์ที่แปลงแล้ว อยู่ในเซลล์ C3:C9 แต่ก็จะมี ข้อผิดพลาด หากอินพุต ค่าตัวเลข เป็น อยู่นอกช่วง
อ่านเพิ่มเติม: วิธีแปลงสตริงเป็นแบบยาวโดยใช้ VBA ใน Excel
การอ่านที่คล้ายกัน
- แปลงสตริงเป็นสองเท่าใน Excel VBA (5 วิธี)
- วิธีแปลงข้อความเป็นตัวเลขด้วย Excel VBA (3 ตัวอย่างพร้อมมาโคร)
- แก้ไขข้อผิดพลาดการแปลงเป็นตัวเลขใน Excel (6 วิธี)
- วิธีแปลงสัญลักษณ์ทางวิทยาศาสตร์เป็นตัวเลขใน Excel (7 วิธี)
2. การใช้ฟังก์ชัน VBA แบบกำหนดเองเพื่อตรวจสอบและแปลงสตริงเป็นตัวเลขใน Excel
ในภาพประกอบนี้ เราจะสร้าง ฟังก์ชันที่กำหนดเอง สำหรับการแปลง สตริงเป็นตัวเลข จากนั้นเราสามารถ ใช้ ฟังก์ชันที่กำหนดเอง นี้ ใน แผ่นงาน เหมือนกับ ฟังก์ชันในตัว ในตัวอย่างนี้ เราจะใช้ ฟังก์ชัน CInt เพื่อ แปลง สตริงเป็น จำนวนเต็ม ในขณะที่สร้าง ฟังก์ชันแบบกำหนดเอง เรายังสามารถใช้ ฟังก์ชันอื่นๆ ทั้งหมดที่อธิบายไว้ใน วิธีที่ 1 เพื่อแปลง สตริง เป็น ชนิดข้อมูลที่แตกต่างกัน ตอนนี้ ทำตามขั้นตอนด้านล่างเพื่อดำเนินการนี้
ขั้นตอน:
- ที่นี่ ในเซลล์ B3:B7, เรามีบางส่วน สตริงตัวเลขค่า
- ตอนนี้ ในโปรแกรมแก้ไขภาพพื้นฐาน คัดลอก และ วาง โค้ดต่อไปนี้และ จากนั้นกด Ctrl + S เพื่อ บันทึก
5604
- ในเซลล์ C3 , เริ่มพิมพ์ ชื่อฟังก์ชัน ( StringToNumber ) Excel จะ แนะนำ ฟังก์ชัน ที่จะใช้โดยอัตโนมัติ กด ปุ่ม แท็บ เพื่อเข้าสู่ฟังก์ชัน
- ใส่ การอ้างอิงเซลล์ B3 เป็นอาร์กิวเมนต์เดียว
- ตอนนี้ กด Enter หลังจากปิดวงเล็บแล้ว
- ค้นหา Fill Handle ที่ มุมขวาล่าง ของเซลล์ C3 เพื่อ นำไปใช้ ฟังก์ชันสำหรับเซลล์ C4:C7.
- ผลลัพธ์สุดท้ายคือตัวเลขจำนวนเต็มที่ต้องการจากค่าสตริง .
3. รหัส VBA เพื่อแปลงช่วงของเซลล์ที่เลือกให้เป็นตัวเลขใน Excel
ในภาพประกอบนี้ เราจะแปลงช่วง ของ เซลล์ที่เลือก ประกอบด้วยค่าสตริงเป็นจำนวนเต็ม ถ้าเซลล์ใดมีค่า ที่ไม่ใช่ตัวเลข อยู่ในนั้น ผลลัพธ์จะเป็น เส้นประ (-) แทน ทำตาม ขั้นตอน :
- เลือกเซลล์ B3:B6 มี สตริงตัวเลข ค่า และ B7 ซึ่งประกอบด้วย ไม่ใช่ตัวเลข
- ใน Visual Basic Editor คัดลอก และ วาง ต่อไปนี้ code .
3819
- ตอนนี้ กด F5 เพื่อ เรียกใช้ เอาต์พุต ตามที่แสดงใน ภาพหน้าจอ ต่อไปนี้
หมายเหตุ
- เราใช้ ฟังก์ชัน isNumeric ใน 2 และ 3 เมธอด ในโค้ด VBA ของเราที่ตรวจสอบว่านิพจน์สามารถแปลงเป็นตัวเลขได้หรือไม่
- ใน เมธอด 1 เราใช้ฟังก์ชันในตัว (CInt, CDbl, CSng…..) เพื่อ แปลงค่าสตริงที่เป็นตัวเลข เป็น ตัวเลข แต่ถ้ามี ค่าที่ไม่ใช่ตัวเลข จะแสดง ข้อผิดพลาดที่ไม่ตรงกัน
บทสรุป
ตอนนี้ เรารู้วิธีแปลงค่าสตริงเป็นตัวเลขใน Excel แล้ว หวังว่าจะสนับสนุนให้คุณใช้ฟังก์ชันนี้ได้อย่างมั่นใจมากขึ้น คำถามหรือข้อเสนอแนะใด ๆ อย่าลืมใส่ไว้ในช่องแสดงความคิดเห็นด้านล่าง