فهرست مطالب
در این مقاله، من به شما نشان خواهم داد که چگونه می توانید یک Sub را از یک Sub یا Function دیگر در VBA در VBA فراخوانی کنید. اکسل . فراخوانی Sub با یا بدون آرگومان و همچنین Public و Private Subs را یاد خواهید گرفت.
نحوه فراخوانی یک ساب در VBA در اکسل (نمایش سریع)
توجه: در اینجا یک Sub به نام Sub2 یک Sub به نام Sub1 را فراخوانی می کند.
دانلود کتاب تمرین تمرین
VBA Call Sub.xlsm
این کتاب تمرینی را دانلود کنید تا در حین خواندن این مقاله، کار را انجام دهید.
4 روش برای فراخوانی یک ساب در VBA در Excel
در اینجا ما یک Sub در VBA به نام Sub1 داریم.
اگر Sub1 را اجرا کنید، پیام "Sub1 is Run" را دریافت خواهید کرد.
امروز هدف ما این است که یاد بگیریم چگونه میتوانیم این Sub را از Sub یا Function دیگر به همه روشهای ممکن فراخوانی کنیم.
1. فراخوانی یک Sub بدون آرگومان از یک Sub دیگر در VBA در اکسل
ابتدا، یک Sub را بدون هیچ آرگومانی از Sub دیگر در <1 فراخوانی می کنیم>VBA .
در اینجا، Sub1 Sub بدون آرگومان است.
اکنون Sub Sub1 را فراخوانی می کنیم. از Sub دیگری به نام Sub2 .
برای تماس با Sub Sub1 از Sub دیگر، باید برای استفاده از خط کد:
Sub1
یا
Call Sub1
اکنون اگر Sub2 را اجرا کنید ، Sub1 فراخوانی می شود و پیام "Sub1 is Run است." نمایش داده می شود.
2. فراخوانی یک فرعی با آرگومان هایی از یک Sub دیگر در VBA در اکسل
اکنون یک Sub را با آرگومان های Sub دیگر در VBA فراخوانی می کنیم. .
در اینجا ما Sub Sub1 را به گونه ای تغییر دادیم که حاوی آرگومانی به نام Input_Value باشد، و زمانی که run، آن آرگومان را نمایش می دهد.
برای فراخوانی این Sub از Sub دیگر ( Sub2 )، ما باید از خط کد استفاده کنیم:
Sub1(Input_Value)
یا
Call Sub1(Input_Value)
در اینجا، ما استفاده کرده ایم:
Call Sub1(10)
اکنون، وقتی Sub2 را اجرا می کنیم، Sub1 با ورودی 10 فراخوانی می شود و 10 در یک صفحه نمایش داده می شود. جعبه پیام .
خواندنهای مشابه:
- چگونه یک مقدار را برگردانیم در تابع VBA (هم مقادیر آرایه و هم مقادیر غیر آرایه)
- استفاده از تابع LCase در VBA در اکسل (با 4 مثال)
- چگونه استفاده از تابع VBA SPLIT در اکسل (5 مثال)
- استفاده از تابع TRIM در VBA در اکسل (تعریف + کد VBA)
3. فراخوانی یک فرعی با/بدون آرگومان از یک تابع تعریف شده توسط کاربر در VBA در اکسل
همچنین می توانید یک Sub از یک عملکرد تعریف شده توسط کاربر تماس بگیرید. در VBA .
⧭ Sub بدون آرگومان
بیایید ابتدا یک Sub بدون آرگومان فراخوانی کنیم .
در اینجا ما دوباره تغییر کرده ایم Sub Sub1 به یکی بدون آرگومان.
اکنون یک Function به نام ایجاد می کنیم. Function1 و از آن تابع Sub1 را فراخوانی کنید.
برای فراخوانی Sub از یک تابع، خط کد مورد استفاده یکسان است. :
Sub1
یا
Call Sub1
اکنون، اگر Function1 را در هر سلولی از کاربرگ خود وارد کنید، Sub1 فراخوانی می شود و یک جعبه پیام "Sub1 is Run" را نمایش می دهد. .
⧭ Sub with Arguments
همچنین می توانید یک Sub را با آرگومان هایی از عملکرد تعریف شده توسط کاربر در VBA در Excel فراخوانی کنید.
در اینجا ما دوباره Sub1 را به آرگومان با آرگومان تغییر دادیم.
اکنون Sub1 را از <1 فراخوانی کردیم>Function1 توسط خط کد:
Call Sub1(10)
حالا اگر <را وارد کنیم 1>عملکرد 1 در هر سلول از کاربرگ ما، 10 را در جعبه پیام نشان می دهد.
4. فراخوانی یک ساب خصوصی از زیر یا تابع دیگری در VBA در اکسل
تا کنون، یک فرعی عمومی را از فرعی یا <دیگری فراخوانی کرده ایم. 1>عملکرد . این بار، ما نشان خواهیم داد که چگونه می توانید با Sub خصوصی از Sub یا Function دیگر در VBA تماس بگیرید.
⧭ تماس از زیر:
فقط میتوانید با فرعی خصوصی از Sub دیگر تماس بگیرید دو در همان ماژول پنجره VBA شما هستند.
اینجاما Sub1 را با افزودن عبارت Private در خط اول به Private Sub تغییر دادیم. و آن را از Sub2 که در همان ماژول است فراخوانی کرد.
حالا اگر Sub2 را اجرا کنید، یک <دریافت خواهید کرد. 1>جعبه پیام نمایش 10 .
⧭ تماس از یک تابع:
برای توابع یکسان است. برای فراخوانی Private Sub از یک Function در VBA ، Sub و Function باید در همان ماژول.
در اینجا ما Private Sub Sub1 و Function Function1 را در همان ماژول قرار داده ایم.
اکنون اگر Function1 را در هر سلولی از کاربرگ خود وارد کنیم، یک جعبه پیام 10 نمایش داده می شود.
خلاصه
در اینجا خلاصه تمام نکاتی که امروز مورد بحث قرار گرفت آمده است:
- شما می توانید با یک <تماس بگیرید 1>Sub از Sub یا عملکرد تعریف شده توسط کاربر در VBA با استفاده از عبارت "تماس" همراه با نام از Sub ، یا به سادگی نام Sub را قرار دهید.
- اگر Sub که باید فراخوانی شود حاوی Argument ، شما باید Sub را با هر مقداری از آن Argument فراخوانی کنید.
- اگر Sub برای فراخوانی به عنوان یک اعلان شود. خصوصی ، باید آن را از Sub یا Function دیگری از همان ماژول فراخوانی کنید.
نتیجهگیری
با استفاده از این روش ها، می توانید با Sub از Sub یا Function دیگر تماس بگیریددر VBA در اکسل. آیا هیچ سوالی دارید؟ از ما بپرسید.