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

תופעות

בעת הפעלת קוד המשתמש באוטומציה כדי לשלוט ב- Microsoft Excel, עשויה להתרחש אחת מהשגיאות הבאות:

ב- Microsoft Excel 97 ובגרסאות מאוחרות יותר של Excel, תקבל אחת מההודעות הבאות:

הודעת שגיאה 1

שגיאת זמן ריצה '1004':
פעולת השירות '<שם פעולת השירות>' של האובייקט '_Global' נכשלה

הודעת שגיאה 2

שגיאה המוגדרת על-ידי היישום או מוגדרת על-ידי האובייקט

ב- Microsoft Excel 95, תקבל אחת מהודעות השגיאה הבאות:

הודעת שגיאה 1

שגיאת זמן ריצה '-2147023174'
שגיאת אוטומציה של OLE

הודעת שגיאה 2

שגיאת זמן ריצה '462':
מחשב השרת המרוחק אינו קיים או אינו זמין.

סיבה

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

פתרון

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

מצב

אופן פעולה זה תם.

מידע נוסף

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

השלבים הבאים ממחישים כיצד לשחזר בעיה זו וכיצד לפתור את הבעיה.

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

  1. התחל פרוייקט חדש של Standard EXE ב- Visual Basic. Form1 נוצר כברירת מחדל.

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

  3. מקם פקד CommandButton בטופס1.

  4. העתק את דוגמת הקוד הבאה לחלון הקוד של Form1.

          Option Explicit
    
          Private Sub Command1_Click()
             Dim xlApp As Excel.Application
             Dim xlBook As Excel.Workbook
             Dim xlSheet As Excel.Worksheet
             Set xlApp = CreateObject("Excel.Application")
             Set xlBook = xlApp.Workbooks.Add
             Set xlSheet = xlBook.Worksheets("Sheet1")
             xlSheet.Range(Cells(1, 1), Cells(10, 2)).Value = "Hello"
             xlBook.Saved = True
             Set xlSheet = Nothing
             Set xlBook = Nothing
             xlApp.Quit
             Set xlApp = Nothing
          End Sub
    
  5. בתפריט הפעלה, לחץ על התחל או הקש F5 כדי להפעיל את התוכנית.

  6. לחץ על הפקד CommandButton . לא מתרחשת שגיאה. עם זאת, הפניה ל- Excel נוצרה ולא הופצה.

  7. לחץ שוב על פקד CommandButton . שים לב שאתה מקבל אחת מהודעות השגיאה המפורטות בסעיף "מאפייני הבעיה".

    הערה הודעת השגיאה מתרחשת מאחר שהקוד מפנה לפעולת השירות של התא מבלי להוסיף לפני השיחה את
    משתנה אובייקט xlSheet.

  8. הפסק את הפרוייקט ושנה את שורת הקוד הבאה:

    xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"
    

    שנה את שורת הקוד כך שדומה לקוד הבא.

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
    
  9. הפעל שוב את התוכנית. שים לב שבאפשרותך להפעיל את הקוד כמה פעמים מבלי לקבל הודעת שגיאה.

הפניות

189618 ייתכן שתקבל את הודעת השגיאה "שגיאת זמן ריצה '-2147023174' (800706ba)" או את הודעת השגיאה "שגיאת זמן ריצה '462'" בעת הפעלת קוד Visual Basic המשתמש באוטומציה כדי לשלוט Word
 

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

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

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

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×