View Full Version : سوال: صدا زدن تابع به وسیله متغیر ؟؟!
سپهر-111
شنبه 14 بهمن 1391, 17:01 عصر
سلام دوستان
نام تابعی که در یک متغیر وجود دارد حالا من میخواهم به وسیله همین نام که به صورت رشته در یک متغیر ذخیره شده است ان تابع را صدا بزنم ؟؟؟
با چه کدی میتونم همچین کاری را انجام بدم ؟؟؟
مانند مثال :
Option Explicit
Dim str As String
Private Sub Command1_Click()
str = "test"
Call str
End Sub
Public Sub test()
End Sub
سوال دوم: چطور میتونم وقتی داخل تابعی هستم نام اون تابع رو بدست بیارم ؟
ممنون میشم راهنمایی بفرمایید
باتشکر از دوستان
حمید محمودی
شنبه 14 بهمن 1391, 18:22 عصر
نام تابعی که در یک متغیر وجود دارد حالا من میخواهم به وسیله همین نام که به صورت رشته در یک متغیر ذخیره شده است ان تابع را صدا بزنم ؟؟؟
شما باید از CallByName بجای Call استفاده کنید؛ بصورت زیر : (البته arguments رو حذف کنید اگر در تابع شما وجود نداره تا با پیغام خطا روبرو نشید؛
Call CallByName(Me, str, VbMethod, Arguments)
سپهر-111
شنبه 14 بهمن 1391, 18:55 عصر
سلام ممنون دوست عزیز:تشویق:
یه سوال دیگه هم داشتم
سوال دوم: چطور میتونم وقتی داخل تابعی هستم نام اون تابع رو بدست بیارم ؟
باتشکر
سپهر-111
شنبه 14 بهمن 1391, 20:37 عصر
شما باید از CallByName بجای Call استفاده کنید؛ بصورت زیر : (البته arguments رو حذف کنید اگر در تابع شما وجود نداره تا با پیغام خطا روبرو نشید؛
Call CallByName(Me, str, VbMethod, Arguments)
با این روش فقط میتونم توی خود فرم یه تابع دیگه رو صدا بزنم
حالا که میخوام به وسیله این روش یه تابع رو در یک ماژول صدا بزنم نمیشه !
ارور میده:
Object dosent support this property or method
ممنون میشم دوستان کمک کنند
حمید محمودی
یک شنبه 15 بهمن 1391, 00:43 صبح
حالا که میخوام به وسیله این روش یه تابع رو در یک ماژول صدا بزنم نمیشهبه این صورت چطور؟
'class module named Module1
Public sub test()
msgbox "hi"
End sub
Public Function MyCallByName(pName As String, cType As VbCallType, ParamArray args() As Variant)
Dim a As Module1
Set a = New Module1
CallByName a, pName, cType, args()
Set a = Nothing
End Function
Sub Main()
MyCallByName("test",VbMethod)
End Sub
و روشی که در اینجا (http://stackoverflow.com/questions/609894) ذکر شده؛
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.