สารบัญ
ในบทความนี้ ฉันจะแสดงวิธีเรียก Sub จาก Sub หรือ Function อื่นใน VBA ใน เอ็กเซล . คุณจะได้เรียนรู้การเรียก ย่อย โดยมีหรือไม่มีอาร์กิวเมนต์ เช่นเดียวกับทั้ง สาธารณะ และ ส่วนตัว ย่อย .
วิธีเรียก Sub ใน VBA ใน Excel (Quick View)
หมายเหตุ: นี่คือ Sub เรียกว่า Sub2 เรียก Sub เรียกว่า Sub1 .
ดาวน์โหลดแบบฝึกหัด
VBA Call Sub.xlsm
ดาวน์โหลดหนังสือแบบฝึกหัดนี้เพื่อฝึกฝนงานขณะที่คุณกำลังอ่านบทความนี้
4 วิธีเรียก Sub ใน VBA ใน Excel
ที่นี่เรามี Sub ใน VBA เรียกว่า Sub1
หากคุณเรียกใช้ Sub1 คุณจะได้รับข้อความ “Sub1 ถูกเรียกใช้”
วันนี้ วัตถุประสงค์ของเราคือเพื่อเรียนรู้วิธีที่เราสามารถเรียกสิ่งนี้ว่า ย่อย จาก ย่อย หรือ ฟังก์ชัน อื่นด้วยวิธีที่เป็นไปได้ทั้งหมด
1. เรียก Sub โดยไม่มีอาร์กิวเมนต์จาก Sub อื่นใน VBA ใน Excel
ก่อนอื่น เราจะเรียก Sub โดยไม่มีอาร์กิวเมนต์จาก Sub อื่นใน VBA .
ในที่นี้ Sub1 คือ Sub โดยไม่มีอาร์กิวเมนต์
ตอนนี้เราจะเรียก Sub Sub1 จาก Sub อื่นที่เรียกว่า Sub2 .
ในการเรียก Sub Sub1 จาก Sub อื่น คุณมี เพื่อใช้บรรทัดรหัส:
Sub1
หรือ
Call Sub1
ตอนนี้ หากคุณ เรียกใช้ Sub2 Sub1 จะถูกเรียกและข้อความ “Sub1 is Run” จะปรากฏขึ้น
2. เรียก Sub ด้วยอาร์กิวเมนต์จากอีก Sub ใน VBA ใน Excel
ตอนนี้เราจะเรียก Sub พร้อมอาร์กิวเมนต์จาก Sub อื่นใน VBA .
เราได้เปลี่ยน Sub Sub1 ในลักษณะที่มีอาร์กิวเมนต์ชื่อ Input_Value และเมื่อ รัน แสดงอาร์กิวเมนต์นั้น
หากต้องการเรียกสิ่งนี้ ย่อย จาก ย่อย อื่น ( Sub2 ), เราต้องใช้บรรทัดของรหัส:
Sub1(Input_Value)
หรือ
Call Sub1(Input_Value)
ที่นี่ เราเคยใช้:
Call Sub1(10)
ตอนนี้ เมื่อเราเรียกใช้ Sub2 Sub1 จะถูกเรียกใช้ด้วยอินพุต 10 และ 10 จะแสดงในรูปแบบ กล่องข้อความ .
การอ่านที่คล้ายกัน:
- วิธีคืนค่า ในฟังก์ชัน VBA (ทั้งค่าอาร์เรย์และค่าที่ไม่ใช่อาร์เรย์)
- ใช้ฟังก์ชัน LCase ใน VBA ใน Excel (พร้อม 4 ตัวอย่าง)
- วิธีการ ใช้ฟังก์ชัน VBA SPLIT ใน Excel (5 ตัวอย่าง)
- ใช้ฟังก์ชัน TRIM ใน VBA ใน Excel (คำจำกัดความ + รหัส VBA)
3. เรียก Sub ที่มี/ไม่มีอาร์กิวเมนต์จากฟังก์ชันที่ผู้ใช้กำหนดใน VBA ใน Excel
คุณยังสามารถเรียก Sub จาก User-Defined Function ใน VBA .
⧭ ย่อยโดยไม่มีอาร์กิวเมนต์
เรียก ย่อย โดยไม่มีอาร์กิวเมนต์ก่อน .
เรามีการเปลี่ยนแปลงอีกครั้ง Sub Sub1 ไปยังอันที่ไม่มีอาร์กิวเมนต์
ตอนนี้ เราจะสร้าง Function ที่เรียกว่า Function1 และเรียก Sub1 จากฟังก์ชันนั้น
ในการเรียก Sub จากฟังก์ชัน บรรทัดโค้ดที่จะใช้จะเหมือนกัน :
Sub1
หรือ
Call Sub1
ตอนนี้ ถ้าคุณแทรก Function1 ในเซลล์ใดๆ ของเวิร์กชีตของคุณ Sub1 จะถูกเรียกและ กล่องข้อความ จะแสดง “Sub1 is Run” .
⧭ Sub with Arguments
คุณยังสามารถเรียก Sub ด้วยอาร์กิวเมนต์จาก User-Defined Function ใน VBA ใน Excel .
ที่นี่เราได้เปลี่ยน Sub1 เป็นแบบที่มีอาร์กิวเมนต์อีกครั้ง
ตอนนี้เราได้เรียก Sub1 จาก Function1 ตามบรรทัดของโค้ด:
Call Sub1(10)
ตอนนี้ถ้าเราแทรก Function1 ในเซลล์ใดๆ ของแผ่นงานของเรา มันจะแสดง 10 ใน กล่องข้อความ .
4. เรียกส่วนย่อยส่วนตัวจากส่วนย่อยหรือฟังก์ชันอื่นใน VBA ใน Excel
จนถึงตอนนี้ เราได้เรียก ส่วนย่อยสาธารณะ จาก ส่วนย่อย หรือ ฟังก์ชั่น . ในครั้งนี้ เราจะแสดงวิธีที่คุณสามารถเรียก Private Sub จาก Sub หรือ Function อื่นใน VBA
⧭ การโทรจาก Sub:
คุณสามารถโทรหา Private Sub จาก Sub อื่นได้หากพวกเขา สองรายการอยู่ในโมดูลเดียวกันของหน้าต่าง VBA ของคุณ
ที่นี่เราได้เปลี่ยน Sub1 เป็น Private Sub โดยเพิ่มคำว่า Private ในบรรทัดแรก และเรียกมันจาก Sub2 ซึ่งอยู่ในโมดูลเดียวกัน
ตอนนี้ ถ้าคุณรัน Sub2 คุณจะได้ กล่องข้อความ แสดง 10 .
⧭ การโทรจากฟังก์ชัน:
เหมือนกันสำหรับฟังก์ชัน ในการเรียก Private Sub จาก Function ใน VBA Sub และ Function ต้องอยู่ใน โมดูลเดียวกัน
ที่นี่เราได้แทรก Private Sub Sub1 และ Function Function1 ไว้ในโมดูลเดียวกัน
<0ตอนนี้ หากเราแทรก Function1 ในเซลล์ใดๆ ของเวิร์กชีตของเรา กล่องข้อความ จะแสดง 10 .
บทสรุป
นี่คือบทสรุปของประเด็นทั้งหมดที่กล่าวถึงในวันนี้:
- คุณสามารถโทรหา Sub จาก Sub หรือ User-Defined Function อื่นใน VBA โดยใช้คำ “Call” กับชื่อ ของ ย่อย หรือเพียงแค่ใส่ชื่อของ ย่อย .
- หาก ย่อย ที่จะเรียกมี อาร์กิวเมนต์ คุณต้องเรียก ย่อย ด้วยค่าใดๆ ของ อาร์กิวเมนต์ นั้น
- หาก ย่อย ที่จะเรียกถูกประกาศเป็น ส่วนตัว คุณต้องเรียกจาก ย่อย หรือ ฟังก์ชัน อื่นของโมดูลเดียวกัน
บทสรุป
ใช้วิธีการเหล่านี้ คุณสามารถเรียก Sub จาก Sub หรือ Function อื่นใน VBA ใน Excel คุณมีคำถามใดๆ? อย่าลังเลที่จะถามเรา