IsMissing

As David

New member
IsMissing

מישהו יודע למה תמיד אני מקבל ערך False מפנקציה IsMissing גם אם אני שלח ארגומנט לפונקציה וגם אם לא?
 

MaD-d0g

New member
..

אתה בטח עושה ככה:
Private Sub msg(Optional x=5)​
תשנה את זה ל
Private Sub msg(Optional x) if IsMissing (x) then x = 5 end if​
 

MaD-d0g

New member
רגע..

כשאתה עושה
Private Sub Form_Load() msg msg 1 End Sub Private Sub msg(Optional x) If IsMissing(x) Then x = 5 End If MsgBox x End Sub​
וזה מדפיס קודם 5 ואז 1, אז יש בעיה
כי זה בסדר גמור..
 

As David

New member
אני לא יודע מה הבעיה.

לפי הקוד שלך בפרויקט חדש הכל בסדר אבל כשאני מנסה בפרויקט קיים זה לא עובד. תודה בכל זאת.
 
תגובה

שים לב שפרמטר שאתה רוצה לבדוק אם הוא חסר בעזרת IsMissing צריך להיות: 1. אופציונלי, כלומר לפניו צריך לבוא Optional 2. מוצהר כ Variant . (באופן עקיף, אם אין הצהרה על טיפוס המשתנה, אז VB מצהיר עליו אוטומטית כ Variant ) . דוגמה:
Public Function MyFunc(Param1 As Integer, Optional Param2 As Variant, Optional Param3) ''' your code here End Function​
כאן Param1 אינו אופציונלי, Param2 אופציונלי, Param3 אופציונלי. מכיוון ש Param2 ו Param3 מוצהרים כ Variant (שניהם!), ניתן לבדוק אם הם חסרים ע"י IsMissing . כל פרמטר מטיפוס שאינו Variant אינו רלוונטי לפונקציה IsMissing .
 
למעלה