דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. סגירת תוכנת אקסך דרך VBA

סגירת תוכנת אקסך דרך VBA

מתוזמן נעוץ נעול הועבר תוכנה
2 פוסטים 2 כותבים 149 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • חנון המרבהח מנותק
    חנון המרבהח מנותק
    חנון המרבה
    כתב ב נערך לאחרונה על ידי חנון המרבה
    #1

    אני רוצה לסגור קובץ אקסל דרך VBA, ויש לי 2 דרכים לעשות זאת

    • ברמת הקובץ - ActiveWorkbook.Close
    • ברמת התוכנה -Application.Quit

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

    Sub סגירה()
        On Error Resume Next
        If IsError(Windows(2).Activate) Then
            Application.Quit
        Else
           ActiveWorkbook.Close
        End If
    End Sub
    

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

    OdedDvirO תגובה 1 תגובה אחרונה
    0
    • חנון המרבהח חנון המרבה

      אני רוצה לסגור קובץ אקסל דרך VBA, ויש לי 2 דרכים לעשות זאת

      • ברמת הקובץ - ActiveWorkbook.Close
      • ברמת התוכנה -Application.Quit

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

      Sub סגירה()
          On Error Resume Next
          If IsError(Windows(2).Activate) Then
              Application.Quit
          Else
             ActiveWorkbook.Close
          End If
      End Sub
      

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

      OdedDvirO מנותק
      OdedDvirO מנותק
      OdedDvir
      כתב ב נערך לאחרונה על ידי
      #2

      @חנון-המרבה אתה כמעט שם, פשוט תשתמש באובייקט ThisWorkbook במקום באובייקט ActiveWorkbook, כך:

      Sub סגירה()
         If Workbooks.Count = 1 Then
            Application.Quit
         Else
            ThisWorkbook.Close
         End If
      End Sub
      

      ההבדל ביניהם הוא ש ThisWorkbook מחזיר את החוברת שמתוכה רץ הקוד, ואילו ActiveWorkbook מחזיר את החוברת הפעילה.

      תגובה 1 תגובה אחרונה
      2
      תגובה
      • תגובה כנושא
      התחברו כדי לפרסם תגובה
      • מהישן לחדש
      • מהחדש לישן
      • הכי הרבה הצבעות


      בא תתחבר לדף היומי!
      • התחברות

      • אין לך חשבון עדיין? הרשמה

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