สารบัญ
หนึ่งในฟังก์ชันที่สำคัญและใช้กันอย่างแพร่หลายที่เราใช้ในขณะที่ทำงานกับ VBA ใน Excel คือ ฟังก์ชันกลาง ของ VBA ใช้สตริงเป็นอินพุตและส่งกลับจำนวนอักขระที่กำหนดจากตรงกลางของสตริงเป็นเอาต์พุต วันนี้ในบทความนี้ ฉันจะแสดงให้คุณเห็นว่าคุณสามารถใช้ ฟังก์ชันกลาง ของ VBA พร้อมตัวอย่างและภาพประกอบที่เหมาะสมได้อย่างไร
การดำเนินการนี้จะส่งคืนอักขระ 9 ตัวจากสตริง “Angela Catherine Nevills” โดยเริ่มจากอักขระ 8th มันคือ “แคทเธอรีน” .
ดาวน์โหลดคู่มือแบบฝึกหัด
ดาวน์โหลดหนังสือแบบฝึกหัดนี้เพื่อฝึกปฏิบัติในขณะที่ คุณกำลังอ่านบทความนี้
VBA Mid Function.xlsm
Introduction to the Mid Function of VBA in Excel
⧭ วัตถุประสงค์ของฟังก์ชัน:
ฟังก์ชัน กลาง รับค่าเป็นอินพุตและ ส่งกลับจำนวนอักขระที่กำหนดโดยเริ่มจากตำแหน่งที่กำหนดของค่าเป็นเอาต์พุต
ค่าสามารถเป็น สตริง ตัวเลข หรือแม้แต่ บูลีน
ตัวอย่างเช่น หากคุณใส่ Mid(“Angela Catherine Nevills”,8,9) มันจะกลับ “Catherine”
ถ้าคุณใส่ Mid(12345,2,3) , คุณจะได้ 234
และใส่ Mid(False,2,3) , คุณจะได้ als .
⧭ ไวยากรณ์:
ไวยากรณ์ของ กลาง ฟังก์ชัน ของ VBA คือ:
=Mid(String,Start as Long,[Length])
⧭ อาร์กิวเมนต์:
<13อาร์กิวเมนต์ | จำเป็น / ไม่บังคับ | คำอธิบาย |
---|---|---|
สตริง | จำเป็น | สตริงจาก ซึ่งจำนวนตัวอักษรจะถูกส่งกลับ |
เริ่ม | ต้องระบุ | อักขระเริ่มต้นของสตริงที่จะถูกส่งกลับ |
ความยาว | ไม่บังคับ | จำนวนอักขระที่จะถูกส่งกลับ ค่าเริ่มต้นคือ 1 |
⧭ ค่าส่งกลับ:
ส่งกลับจำนวนอักขระที่กำหนดจากตรงกลาง ของสตริงโดยเริ่มจากตำแหน่งที่กำหนด
3 ตัวอย่าง Mid Function ของ VBA ใน Excel
คราวนี้มาสำรวจ Mid function ของ VBA อย่างละเอียดพร้อมตัวอย่างบางส่วน
1. การแยกจำนวนอักขระที่กำหนดออกจากตรงกลางของ ID บางตัวโดยใช้ฟังก์ชัน Mid ของ VBA ใน Excel
ที่นี่เรามีชุดข้อมูลที่มี IDs และ ชื่อ ของพนักงานบางคนของบริษัทที่ชื่อว่า Saturn Group
ในที่นี้ ตัวอักษร ตัวที่ 4 ถึง ตัวที่ 7 ของแต่ละตัว ID แสดงถึงปีที่เข้าร่วมของพนักงานที่เกี่ยวข้อง
ตอนนี้ เราจะพัฒนา ฟังก์ชันที่กำหนดโดยผู้ใช้ โดยใช้ ฟังก์ชันกลาง ของ VBA ซึ่งจะแยกปีที่เข้าร่วมของพนักงานแต่ละคนจาก รหัสพนักงาน
คุณสามารถใช้รหัส VBA ต่อไปนี้:
⧭ รหัส VBA:
6987
หมายเหตุ: รหัสนี้สร้างฟังก์ชันชื่อ การเข้าร่วม_ปี .
⧭ เอาต์พุต:
เรียกใช้สิ่งนี้ ฟังก์ชันในเซลล์ใดๆ ของเวิร์กชีตของคุณโดยมี ID เป็นอาร์กิวเมนต์
ที่นี่ ในเซลล์ D4 เราได้ป้อนสูตร:
=Joining_Year(B4)
ส่งคืนปีที่เข้าร่วมของพนักงานคนแรก 2021 .
ตอนนี้คุณสามารถลาก Fill Handle เพื่อรับจำนวนปีที่เข้าร่วมของพนักงานที่เหลือ
⧭ คำอธิบายของ Code:
- ก่อนอื่น เราประกาศฟังก์ชันชื่อ การเข้าร่วม_ปี ซึ่งรับ ID เป็นอินพุตโดยบรรทัด ฟังก์ชันการเข้าร่วม_ปี(ID) .
- จากนั้นเราจะแยกอักขระ 4 ตัวออกจาก ID โดยเริ่มจากตำแหน่ง 4 โดยบรรทัด Joining_Year = Mid(ID, 4, 4)
- บรรทัด สิ้นสุดฟังก์ชัน ประกาศสิ้นสุดฟังก์ชัน
2. แยกส่วนขยายจากที่อยู่อีเมลบางรายการโดยใช้ฟังก์ชันกลางของ VBA ใน Excel
ตอนนี้เราได้เพิ่มคอลัมน์ใหม่ลงในชุดข้อมูล ซึ่งมีที่อยู่อีเมลของพนักงาน
คราวนี้เราจะแยกส่วนขยายของที่อยู่อีเมลออกโดยใช้ฟังก์ชัน กลาง ของ VBA .
The รหัส VBA จะเป็น:
⧭ รหัส VBA:
7931
หมายเหตุ: รหัสนี้ สร้างฟังก์ชันชื่อ ส่วนขยาย .
⧭ เอาต์พุต:
เรียกใช้สิ่งนี้ ทำงานในเซลล์ใดๆ ของเวิร์กชีตของคุณด้วย อีเมลที่อยู่ เป็นอาร์กิวเมนต์
ที่นี่ ในเซลล์ E4 เราได้ป้อนสูตร:
=Extension(D4)
มันส่งกลับส่วนขยายของที่อยู่อีเมลแรก
จากนั้นคุณสามารถลาก ที่จับเติม เพื่อแยกส่วนขยายของอีเมลทั้งหมด ที่อยู่
⧭ คำอธิบายของรหัส
- ก่อนอื่น เราประกาศฟังก์ชันที่เรียกว่า ส่วนขยาย ที่ใช้ชื่อใด ๆ เป็นอินพุตโดยบรรทัด Function Extension(Email_Address) .
- จากนั้นเราจะเริ่มการวนซ้ำด้วย for-loop ที่ตรวจสอบอักขระแต่ละตัวของ ที่อยู่อีเมล เพื่อดูว่าเป็น @ หรือไม่ โดยบรรทัด หาก Mid(Email_Address, i, 1) = “@” แล้วก็ .
- หากพบ @ ระบบจะแยกส่วนขยายที่จำเป็นออกจาก ที่อยู่อีเมล โดยบรรทัด ส่วนขยาย = Mid(Email_Address, i + 1, Len(Email_Address) – (i + 4)) .
- สุดท้าย เราประกาศการสิ้นสุดของฟังก์ชัน
3. การตรวจสอบข้อความบางข้อความเพื่อดูว่ามีข้อความเฉพาะหรือไม่
หนึ่งในการใช้งานที่สำคัญที่สุดของ ฟังก์ชัน Mid คือการดูว่าข้อความมีข้อความเฉพาะหรือไม่ .
มาพัฒนาฟังก์ชันเพื่อตรวจสอบว่า ที่อยู่อีเมล มีคำว่า “gmail” หรือไม่
คุณสามารถใช้ VBA รหัส:
⧭ รหัส VBA:
6090
หมายเหตุ: รหัสนี้สร้างฟังก์ชัน เรียกว่า กำลังตรวจสอบ .
⧭ เอาต์พุต:
เรียกใช้ฟังก์ชันนี้ในเซลล์ใดก็ได้ ของเวิร์กชีตของคุณโดยมีข้อความสองข้อความเป็นอาร์กิวเมนต์
ที่นี่ ในเซลล์ E4 เราได้ป้อนสูตร:
=Checking(D4,"gmail")
กลับมา ใช่ เนื่องจากที่อยู่อีเมลแรกเป็นที่อยู่ Gmail
จากนั้นคุณสามารถลาก Fill Handle เพื่อทำเช่นเดียวกันกับ ID อีเมลทั้งหมด
⧭ คำอธิบายของรหัส:
- ขั้นแรก เราประกาศฟังก์ชันชื่อ การตรวจสอบ ที่รับข้อความสองข้อความเป็นอาร์กิวเมนต์ตามบรรทัด การตรวจสอบฟังก์ชัน(Text1,Text2)
- จากนั้นเราจะเริ่ม for วนซ้ำเพื่อตรวจสอบแต่ละส่วนของ Text1 โดยเริ่มจากตำแหน่ง 1 เพื่อดูว่าเท่ากับ Text2 หรือไม่ ข้างบรรทัด ถ้า Mid(Text1, i, Len(Text2)) = Text2 แล้วก็
- หากพบ Text2 จะส่งกลับ “ใช่” มิฉะนั้นจะส่งกลับ “ไม่”
- สุดท้าย เราสรุปฟังก์ชันด้วยบรรทัด จบฟังก์ชัน .
สิ่งที่ต้องจำ
- อาร์กิวเมนต์ ที่ 1 ของ ฟังก์ชัน Mid ไม่จำเป็นต้องเป็นสตริงเสมอไป อาจเป็น สตริง , ตัวเลข หรือแม้แต่ค่า บูลีน ก็ได้
- แต่ ที่สอง และ อาร์กิวเมนต์ที่ 3 ต้องเป็น ตัวเลข สามารถเป็น จำนวนเต็ม หรือ เศษส่วน แต่ต้องเป็น ตัวเลข หากเป็น เศษส่วน แสดงว่าเป็น กลางฟังก์ชัน จะแปลงให้เป็นจำนวนเต็ม ที่ใกล้เคียงที่สุด .