שלום וברכה,

זהו אחד השיעורים החשובים בקורס מאקרו של אקסל. (לקורס המלא)[/קורס-מאקרו]. בשיעור הזה, אני הולך להראות איך מטפלים בתקלות, שגיאות בתוך המאקרויים שנכתוב או נקליט.

למה בכלל צריך טיפול בתקלות במאקרו ?

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

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

אם אתם מחפשים לשדרג את ניתוח הנתונים והדו"חות שלכם באופן מקצועי ?
אני ממליץ בחום לשקול את השירות שלנו של תותח Excel.
המומחיות שלנו באקסל תורמת להגשמת היעדים ולפתרון של בעיות מורכבות בצורה יעילה ומהירה.
עם מומחה Excel, אתם יכולים להיות בטוחים שתהליך העבודה שלכם יתנהל בצורה מקצועית.
ליצירת קשר לחצו כאן.

וידאו - טיפול בתקלות של מאקרו VBA באקסל

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

אילו שיטות לטיפול בתקלות במאקרו נלמד ?

אני אציג כאן 2 שיטות לטיפול בתקלות במאקרו VBA. הן מכסות 99% מהמקרים. ישנן עוד שיטות, שלא אפרט כאן, אך הן זניחות. השיטה הראשונה היא לכתוב למעשה שורת קסם שפשוט מדלגת לפקודה הבאה במקרה של תקלה. והשיטה השניה, מאפשרת לטפל בצורה יותר עניינית בתקלה.

שיטה 1 לטיפול בתקלות מאקרו VBA

השיטה הראשונה לטיפול בתקלות, היא הפקודה הבאה :

On Error Resume Next

המשמעות של הפקודה, בתרגום חופשי היא : “אם מתרחשת תקלה, תתקדם הלאה”. כלומר, זהו הטיפול הכי “נאיבי” לתקלות, אנחנו פשוט… לא מטפלים בהן* אלא ממשיכים הלאה בקוד.

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

רוצה ליצור דוחות ותרשימים מתקדמים בעזרת Excel?
שירות של מומחה Excel יכול להציע לך פתרונות מותאמים לצרכים שלך.
צור קשר עכשיו

שיטה 2 לטיפול בתקלות מאקרו VBA

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

לאיזור הזה אנחנו קוראים בשם, למשל ErrorLabel, ומייד אחרי השם, נקליד נקודתיים.

ועל מנת שזה יעבוד, צריך להוסיף פקודה בראש הקוד, שאומרת שבמקרה תקלה, יש “לקפוץ” אל האיזור של ה- Label שהגדרנו. ראו את השורה הראשונה בקטע הבא, וכן את הגדרת ה-Label.

On Error Goto ErrorLabel
... קוד כלשהוא
... קוד כלשהוא
... קוד כלשהוא
ErrorLabel:
    ... כאן יבוא הקוד שנרצה שיתרחש בזמן שתהיה תקלה

אז איזה טיפול למשל נרצה ? למשל, אנחנו נרצה להודיע למשתמש שאירעה תקלה. אז הנה דוגמא קצת יותר מלאה שבה אנחנו מכריזים על איזור בקוד, וגם מודיעים למשתמש:

On Error Goto ErrorLabel
... קוד כלשהוא
... קוד כלשהוא
... קוד כלשהוא
ErrorLabel:
    MsgBox "אירעה תקלה בלתי צפויה, בבקשה נסה שנית"

רוצה להפוך את עבודתך ב-Excel לפחות מסובכת ויותר יעילה?
מומחה Excel יכול להפוך תהליכים לאוטומטים ולבנות עבורך אקסלים יעילים.
צור קשר עכשיו

איזו בעיה נוצרת בשיטה השניה, ואיך פותרים אותה ?

בשיטה הזו, גלומה בעיה קטנה : כיוון שהאיזור הזה בקוד מתרחש בסוף הקוד, אז למעשה… בכל הפעלה של הקוד, גם בהפעלה תקינה, עדין יתרחש קטע הקוד הזה. וזה - לא משהו שהתכוונו אליו.

מה נעשה ?

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

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

On Error Goto ErrorLabel
... קוד כלשהוא
... קוד כלשהוא
... קוד כלשהוא

EndOfSub:
    Exit Sub
    ' זוהי למעשה יציאה תקינה מהפרוצדורה

ErrorLabel:
    MsgBox "אירעה תקלה בלתי צפויה, בבקשה נסה שנית"

סיכום - טיפול בתקלות\שגיאות בקוד מאקרו VBA של אקסל

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

קרדיט תמונה: Image by Tumisu from Pixabay

מחפש פתרון מתקדם ואפקטיבי ב-Excel ?
צוות המומחים שלנו ב-"תותח אקסל" מסוגל להתמודד עם כל אתגר, גדול כקטן , בתחום תוכנת אקסל.
בין אם מדובר בניתוח נתונים מורכב, פיתוח דוחות אוטומטיים או שילוב עם תוכנות אחרות לשימוש יעיל באקסל.
אנחנו בתותח אקסל מציעים פתרונות המותאמים באופן מדויק לצרכים שלכם.
עם ידע רחב וניסיון עשיר, נהפוך עבורך כל פרויקט או בעיה להזדמנות לשיפור והצלחה.
תותח אקסל - הבחירה המושלמת למי שרוצה להשתמש באקסל לא רק ככלי, אלא כנשק עסקי חד וחזק.
צור קשר עכשיו