Προς το περιεχόμενο

VBA wb.Close SaveChanges:=False


Μετάβαση στην απάντηση Απαντήθηκε από ChrisGT7,

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα,

έχω ένα θεματάκι με ένα σχετικά απλό κώδικα σε VBA στο spoiler

Βασικά αυτό που κάνει είναι να

- ανοίγει ένα ένα όλα τα αρχεια που βρίσκονται στο subfolder 

- διαβάζει το κελι "G4"

- κλείνει το αρχείο

και τυπώνει στη οθόνη το path του κάθε αρχείου καθώς και αυτό που διάβασε από το κάθε G4

όλα καλά

το πρόβλμά μου είναι ότι ενώ το αρχείο κλείνει κανονικά, αυτό συνεχίζει να εμφανίζεται στο project tree του VBA editor ως να είναι ανοικτό

δλδ

image.png.466e38588d5d553663c8ba20498d7bac.png

καθώς διαβαζονται ακρετές εκατοντάδες αρχεία νομίζω ότι σιγά σιγά "βαραίνει" και πιο μετά ίσως χρειαστεί να διαβαστούν περισσότερα

πως γίνεται αυτό?

όταν ανοίγεις και κλείνεις χειροκίνητα ένα αρχείο αυτό "φευγει" από εκεί. Τώρα όχι

το chat gpt πρότεινε το 

set wb = Nothing

αλλά δε κάνει τίποτα.

 

Spoiler

Sub mysub()

    Dim FSO As FileSystemObject
    Dim baseFolder As Folder
    
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim rng As Range

subfolder = Worksheets("settings").Cells(1, 2)
pth = ThisWorkbook.Path + "\" + subfolder + "\"

Set FSO = New FileSystemObject
Set baseFolder = FSO.GetFolder(pth)

i = 0
For Each file_ In baseFolder.Files
    i = i + 1
    
    Cells(i, 1) = pth + file_.Name
    
    Set wb = Workbooks.Open(pth & file_.Name)
    Set ws = wb.Sheets(1)
    Set rng = ws.Range("G4")
    
    Cells(i, 3) = rng.Value
        
    wb.Close SaveChanges:=False
    
    Set wb = Nothing

Next

End Sub

 

Επεξ/σία από DrLo
Δημοσ. (επεξεργασμένο)

Καλησπέρα @DrLo,

Τον απλοποίησα όσο μπορούσα αλλά δεν είδα να εμφανίζεται αυτό που αναφέρεις, ούτε με τον απλοποιημένο ούτε με τον δικό σου κώδικα.

Μετά το πέρας της εκτέλεσής του, στο διαχειριστή (Project Manager) υπάρχει μόνο το αρχείο με την μακροεντολή.

Option Explicit

Sub MySub()
    Dim FSO    As New FileSystemObject
    Dim MyFile As File
    Dim Wb     As Workbook
    Dim Pth    As String
    Dim I      As Long

    Application.ScreenUpdating = False
    
    Pth = ThisWorkbook.Path & "\" & [B1] & "\"
    For Each MyFile In FSO.GetFolder(Pth).Files
        I = I + 1
        Cells(I, 1).Value = Pth & MyFile.Name
        Set Wb = Workbooks.Open(Pth & MyFile.Name)
        Cells(I, 3).Value = Wb.Sheets(1).[G4]
        Wb.Close SaveChanges:=False
    Next
    
    Application.ScreenUpdating = True
End Sub

 

Επεξ/σία από ChrisGT7
  • Thanks 1
Δημοσ.
2 ώρες πριν, ChrisGT7 είπε

Καλησπέρα @DrLo,

Τον απλοποίησα όσο μπορούσα αλλά δεν είδα να εμφανίζεται αυτό που αναφέρεις, ούτε με τον απλοποιημένο ούτε με τον δικό σου κώδικα.

Μετά το πέρας της εκτέλεσής του, στο διαχειριστή (Project Manager) υπάρχει μόνο το αρχείο με την μακροεντολή.

Option Explicit

Sub MySub()
    Dim FSO    As New FileSystemObject
    Dim MyFile As File
    Dim Wb     As Workbook
    Dim Pth    As String
    Dim I      As Long

    Application.ScreenUpdating = False
    
    Pth = ThisWorkbook.Path & "\" & [B1] & "\"
    For Each MyFile In FSO.GetFolder(Pth).Files
        I = I + 1
        Cells(I, 1).Value = Pth & MyFile.Name
        Set Wb = Workbooks.Open(Pth & MyFile.Name)
        Cells(I, 3).Value = Wb.Sheets(1).[G4]
        Wb.Close SaveChanges:=False
    Next
    
    Application.ScreenUpdating = True
End Sub

 

Θα το δοκιμάσω αν και μου φαίνεται ακριβώς το ίδιο.

 

Λες να είναι κάνα setting στο excel του λάπτοπ της δουλειάς?

 

Θα το δοκιμάσω και σε αλλο laptop μπας και είναι τιποτα κουφο.

  • Λύση
Δημοσ. (επεξεργασμένο)

Από όσο ξέρω και από ότι έχω δει μέχρι τώρα, στο Διαχειριστή Έργων εμφανίζονται μόνο τα ανοικτά βιβλία εργασίας.

Θα το ψάξω πάντως μήπως υπάρχει κάποια ρύθμιση που κρατάει αντίγραφα ασφαλείας των βιβλίων εργασίας που έχουν ανοιχθεί μέχρι τότε.

Επεξεργασία:

Με ένα γρήγορο ψάξιμο στο διαδίκτυο, βρήκα αρκετές δημοσιεύσεις με αυτό το πρόβλημα που ακρετοί αναφέρονται ως "σφάλμα του Excel" (bug).

Κάποιος που βρήκε μια λύση, ανέφερε πως το πρόβλημα ήταν σε ένα πρόσθετο του Excel (Add-in) που χρησιμοποιούσε, το έσβησε και το πρόβλημα λύθηκε.

Οπότε, ρίξε μια ματιά στα πρόσθετα που φορτώνονται κατά την Έναρξη του Excel, μιας και αναφέρεις πως είναι της δουλειάς σου, και αν δεις τίποτα περίεργο, απενεργοποίησέ το και δοκίμασε ξανά.

Επεξ/σία από ChrisGT7
  • Thanks 1
Δημοσ.

Thanks θα το κοιτάξω αν και δε νομίζω να έχω κάποιο add-in

Σε αυτά τα ποστ που λες αναφέρουν ότι το πρόβλημα εμφανίζεται μόνο όταν κλείνει το αρχείο μέσω VBA ή γενικά?

Αν ανοίξω κάποιο αρχείο χειροκίνητα και το κλείσω δεν υπάρχει πρόβλημα. Μόνο όταν γίνεται μέσω του κώδικα.

 

Δημοσ.

Καλημέρα!

Μέσω κώδικα VBA αν θυμάμαι καλά, γιατί είχαν και αντίστοιχες φωτογραφίες με τη δικιά σου.

Πάντως έχω φτιάξει παλιότερα κώδικα που επεξεργάζεται αρχεία, αλλά δε θυμάμαι ποτέ να έχει ξαναγίνει κάτι τέτοιο. Και όπως ανέφερα, δοκίμασα τον κώδικά σου και λειτουργούσε κανονικά.

Αν ανοίξεις κάποιον κώδικα από τα ήδη "κλεισμένα" αρχεία, όπως φαίνονται στη φωτογραφία σου, μπορείς να τον επεξεργαστείς και να τον αποθηκεύσεις κανονικά; Δηλαδή παρόλο που έχουν κλείσει τα αρχεία, μπορείς να επεξεργαστείς τα δεδομένα του κώδικα ή θα σου βγάλει κάποιο σφάλμα αποθήκευσης; Έχεις δοκιμάσει κάτι τέτοιο;

Δημοσ.
12 ώρες πριν, ChrisGT7 είπε

Επεξεργασία:

Με ένα γρήγορο ψάξιμο στο διαδίκτυο, βρήκα αρκετές δημοσιεύσεις με αυτό το πρόβλημα που ακρετοί αναφέρονται ως "σφάλμα του Excel" (bug).

Κάποιος που βρήκε μια λύση, ανέφερε πως το πρόβλημα ήταν σε ένα πρόσθετο του Excel (Add-in) που χρησιμοποιούσε, το έσβησε και το πρόβλημα λύθηκε.

Οπότε, ρίξε μια ματιά στα πρόσθετα που φορτώνονται κατά την Έναρξη του Excel, μιας και αναφέρεις πως είναι της δουλειάς σου, και αν δεις τίποτα περίεργο, απενεργοποίησέ το και δοκίμασε ξανά.

Τελικά αυτό ήταν.

είχε add-in του bluebeam που όταν το απενεργοποίησα ο ίδιος κώδικας έπαιξε κανονικά.

THANKS !!!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...