סוגי שגיאות ב- VBA עבור Excel - רשימה ודוגמאות

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

סוגי שגיאות ב- VBA עבור Excel

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

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

סוגי שגיאות VBA

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

1. שגיאות תחביר - שורת קוד ספציפית אינה כתובה כהלכה

2. קומפילציה של שגיאות - נושאים שקורים בעת הרכבת שורות קוד, אם כי נראה כי שורות קוד בודדות הגיוניות

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

מהן שגיאות תחביר?

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

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

ג'יין מצאה 18 שגיאות בקוד ה- VBA שלה .

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

  • זה חייב להתחיל אם
  • הבא חייב להיות מבחן הגיוני , כגון x> 10
  • לבסוף, זה חייב להסתיים במילה אז

אם מספר שגיאות> 20 אז

אם אתה מפר את הכללים שלעיל באנגלית או ב- VBA, הדקדוק שלך (אנגלית) או התחביר (VBA) נחשב לא נכון.

כיצד לזהות שגיאת תחביר

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

שגיאת תחביר בסיסית:

תחביר בסיסי erro

תיבת הודעות שגיאה בתחביר:

תיבת הודעות שגיאה בתחביר

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

בדיקת תחביר אוטומטי

כיצד לפתור שגיאות תחביר

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

מהן שגיאות קומפילציה?

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

כיצד לזהות שגיאת קומפילציה

כאשר אתה מריץ את קוד ה- VBA שלך, שגיאות קומפילציה יוצגו בתיבת דו-שיח של VBA לפי הדוגמאות שלהלן.

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

דוגמה 1

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

שגיאת קומפילציה - דוגמה 1

דוגמה 2

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

שגיאת קומפילציה - דוגמה 2

דוגמה 3

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

שגיאת קומפילציה - דוגמה 3

כיצד לפתור שגיאות קומפילציה

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

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

חסום אם בלי סוף אם

מהן שגיאות זמן ריצה?

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

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

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

כיצד לזהות שגיאות זמן ריצה

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

דוגמה 1

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

שגיאת זמן ריצה - דוגמה 1

שגיאות זמן ריצה - דוגמה 1 א

דוגמה 2

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

שגיאת זמן ריצה - דוגמה 2

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

שגיאת זמן ריצה - דוגמה 2 א

כדי לוודא שהפונקציה Debug מופעלת, בתפריט אפשרויות> כללי> לכידת שגיאות, מצב ברירת המחדל צריך להיות "הפסקה בשגיאות שלא טופלו". השאר את האפשרות מסומנת.

הפסקה בשגיאות שלא טופלו

כיצד לפתור שגיאות זמן ריצה

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

שגיאת לכידה

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

דוגמה 1

כאן, השורה 'בעת שגיאה המשך הבא' מאלצת את המשך הקוד, גם אם זוהתה שגיאה. לאחר מכן אנו משתמשים במבחן If Err> 0 כדי ליצור הודעת אזהרה, רק אם השגיאה קיימת. ה- 'On Error Goto 0' מאפס את ה- VBA למצב ברירת המחדל.

לכידת שגיאות - דוגמה 1

דוגמה 2

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

לכידת שגיאות - דוגמה 2

נקה הוראות משתמש

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

סיכום

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

משאבים נוספים

מימון הוא הספק הרשמי של הסמכת בנקאות ואשראי בנקאית מוסמכת (CBCA) ™ CBCA ™ העולמית. הסמכת הסמכת בנקאות ואשראי מוסמכת (CBCA) ™ הינה תקן עולמי לאנליסטים אשר מכסה פיננסים, חשבונאות, ניתוח אשראי, ניתוח תזרים מזומנים. , דוגמנות ברית, החזר הלוואות ועוד. תוכנית הסמכה, שנועדה לעזור לכל אחד להיות אנליסט פיננסי ברמה עולמית. כדי להמשיך ולקדם את הקריירה שלך, המשאבים הנוספים להלן יהיו שימושיים:

  • #REF Excel שגיאות #REF Excel שגיאות #REF Excel שגיאות גורמות לבעיות גדולות בגיליונות האלקטרוניים. למד כיצד למצוא ולתקן שגיאות #REF ב- Excel במדריך מהיר זה עם דוגמאות וצילומי מסך. # REF! שגיאה ("ref" מייצג הפניה) היא ההודעה ש- Excel מציג כאשר נוסחה מפנה לתא שאינו קיים עוד, הנגרמת על ידי מחיקת תאים
  • דוגמאות VBA של Excel דוגמאות VBA של Excel. Excel VBA מאפשר למשתמש ליצור פקודות מאקרו שמייצרות תהליכים בתוך Excel. מדריך זה ישתמש בדוגמאות VBA של Excel כדי להראות כיצד להקליט מאקרו על ידי הגדרת המאקרו, כיצד להכריז על משתנים וכיצד להפנות נתונים.
  • טיפים לכתיבת VBA ב- Excel טיפים לכתיבת VBA ב- Excel המפורטים להלן הם תשעה טיפים לכתיבת VBA ב- Excel. VBA עבור Excel מציג אינספור אפשרויות לחישובים ואוטומציה בהתאמה אישית.
  • שיטות VBA שיטות VBA שיטת VBA היא פיסת קוד המצורפת לאובייקט VBA, משתנה או הפניה לנתונים המספרת ל- Excel איזו פעולה לבצע ביחס לאובייקט זה. העתקה, הדבקה ובחירה הן רק כמה דוגמאות לשיטות VBA שניתן לבצע.