תופעות

כאשר Microsoft Excel טוען תוספת אוטומציה במהלך מצב עריכת תאים, Excel נכשל. בעיה זו מתרחשת רק עם תוספות אוטומציה ש- Demand Loaded לתוך Excel.

סיבה

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

  • שנה באופן תיכנותי את הבחירה הנוכחית. לדוגמה:

    Application.ActiveSheet.Range("A1").Select
  • קריאה למאפיין או לפעולת שירות של פריט באוסף Windows. לדוגמה:

    Application.ActiveWindow.Zoom = 200
  • שנה הגדרה של Excel, כגון מצב החישוב. לדוגמה:

    Application.CalculationMode = xlManual

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

פתרון

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

מצב

Microsoft אישרה שזהו באג במוצרי Microsoft המפורטים בתחילת מאמר זה.

מידע נוסף

שלבים לשכפול בעיה

  1. התחל פרוייקט DLL חדש של ActiveX ב- Visual Basic.

  2. בתפריט פרוייקט, לחץ על מאפייני Project1. שנה את שם הפרוייקט ל- TestAddIn ולאחר מכן לחץ על אישור.

  3. הוסף את הקוד הבא למודול הקוד עבור Class1:

    Private Sub Class_Initialize()    MsgBox "Class_Initialize"End Sub
  4. גירסת Build TestAddIn.dll.

  5. ב- Excel, התחל חוברת עבודה חדשה.

  6. ב- Microsoft Office Excel 2003 או ב- Microsoft Excel 2002, בצע את הפעולות הבאות:

    1. בתפריט כלים , הצבע על תוספות ולאחר מכן לחץ על אוטומציה.

    2. ברשימה, לחץ על TestAddIn.Class1 ולאחר מכן לחץ על אישור.

    3. בתיבת הדו-שיח תוספות , לחץ על אישור.

    ב- Microsoft Office Excel 2007, בצע את הפעולות הבאות:

    1. לחץ על לחצן Microsoft Office ולאחר מכן לחץ עלאפשרויות Excel.

    2. לחץ על הכרטיסיה תוספות.

    3. ברשימה נהל , לחץ על תוספות של Excel ולאחר מכן לחץ על ביצוע.

    4. בתיבת הדו-שיח תוספות, לחץ עלאוטומציה.

    5. ברשימה, לחץ על TestAddin.Class1 ולאחר מכן לחץ על אישור.

    6. לחץ על אישור.

  7. הקלד =a בתא כלשהו. תופיע תיבת הודעה עם הטקסט "Class_Initialize".

  8. לחץ על אישור כדי לסגור את תיבת ההודעה. לאחר כמה שניות, Excel נכשל.

הפניות

לקבלת מידע נוסף, לחץ על מספר המאמר הבא כדי להציגו במאגר הידע Microsoft Knowledge Base‏:

291392 מידע: תוספות COM של Excel והתוספות לאוטומציה

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

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