วิธีเรียก Sub ใน VBA ใน Excel (4 ตัวอย่าง)

  • แบ่งปันสิ่งนี้
Hugh West

ในบทความนี้ ฉันจะแสดงวิธีเรียก 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 คุณมีคำถามใดๆ? อย่าลังเลที่จะถามเรา

Hugh West เป็นผู้ฝึกอบรมและนักวิเคราะห์ Excel ที่มีประสบการณ์สูงและมีประสบการณ์มากกว่า 10 ปีในอุตสาหกรรมนี้ เขาสำเร็จการศึกษาระดับปริญญาตรีสาขาการบัญชีและการเงิน และปริญญาโทสาขาบริหารธุรกิจ Hugh มีความหลงใหลในการสอนและได้พัฒนาแนวทางการสอนที่เป็นเอกลักษณ์ซึ่งง่ายต่อการติดตามและเข้าใจ ความรู้ความเชี่ยวชาญของเขาเกี่ยวกับ Excel ช่วยให้นักเรียนและผู้เชี่ยวชาญหลายพันคนทั่วโลกพัฒนาทักษะและความเป็นเลิศในอาชีพการงาน ฮิวจ์แบ่งปันความรู้ของเขากับคนทั้งโลกผ่านบล็อก โดยเสนอบทช่วยสอน Excel ฟรีและการฝึกอบรมออนไลน์เพื่อช่วยให้บุคคลและธุรกิจบรรลุศักยภาพสูงสุดของตนเอง