בעיות נפוצות | פתרונות |
חלוקה באפס תמיד כשיש חלוקה, עלולה להיות חלוקה באפס, שהיא אסורה ותוקעת את התוכנית (או "מעיפה" אותה). |
לפני שמחלקים, לבדוק אם המספר שבו מחלקים אינו אפס (ע"י מבנה If..Then פשוט). אם כן הזהירו את המשתמש! |
מקבלים כל הזמן תוצאה אפס אחרי כפל - איפוס לא נכון של משתנה | אם הולכים להכפיל משתנה, לאפס אותו לאחד, ולא לאפס (כי כל מה שכופלים באפס הוא אפס) |
מקבלים כל הזמן תוצאות מוזרות מפעולות על משתנה - איפוס לא נכון של משתנה | לא לשכוח לאפס משתנים מיד אחרי שהוגדרו! |
טעויות בשמות של משתנים ופקדים. | לא להתבלבל. לערוך רישום. לבחור שמות חכמים וברורים עפ"י כללים ידועים וקבועים. |
לולאות אינסופיות של For..Next |
לבדוק שלא משנים במהלך הלולאה את הערך של מונה הלולאה עצמו. |
לולאות אינסופיות של Do..Loop |
לבדוק שלא נתתם תנאי בלתי אפשרי להפסקת הלולאה (למשל, שהאות "א" תהיה שווה ל- "ת"). לבדוק גם שהקוד עצמו לא מאפס שלא לצורך את המשתנה אשר הלולאה בודקת. |
לולאת Do..Loop אשר הקוד תמיד מדלג עליה | לבדוק אם התנאי של הלולאה נכון, ואם אינו מסתמך על משתנה או תנאי אחר אשר לעולם לא יהיו נכונים. |
בזמן לולאות ארוכות, נראה שחלונות "נתקעת" |
להוסיף באמצע הלולאה את הפקודה .DoEvents פקודה זו משחררת את חלונות לשאר עיסוקיה. |
פקודות If..Then אשר אינן עובדות נכון |
לבדוק שהתנאי כתוב נכון. לבדוק אם אין אופרטור Not מיותר, או שחסר אחד כזה. לבדוק אם אופרטור And או Or אכן מתאימים במקרה שלכם או שטעיתם. |
מבני If..Then או Do..Loop שאינם עובדים כלל | בדקו אם לא נתתם כלל שלא מתקיים אף-פעם, או כזה שמתקיים תמיד. |
נתונים חסרים לביצוע פקודות שונות | אם אתם מקבלים מידע מהמשתמשים, בדקו תמיד שהמידע קיים, ושהוא מספיק. אם אתם מנסים לחשב שנת לידה, והמשתמש לא סיפק בכלל תאריך תיווצר בעיה. |
חלוקה לא עובדת כפי שצפינו | לא להכניס תוצאת חלוקה למספר שלם. להיזהר להשתמש בסימן הנכון (/ לחלוקה מלאה, \ לחלוקה שלמה). |
ישנן עוד בעיות רבות ונפוצות יותר ופחות, אך קשה לחשוב על כולן.