Οδηγοί

Πώς να επιδιορθώσετε το σφάλμα χρόνου εκτέλεσης 1004 στο Excel

Το σφάλμα χρόνου εκτέλεσης 1004 είναι ένας κωδικός σφάλματος που σχετίζεται με τη Microsoft Visual Basic που είναι γνωστό ότι επηρεάζει τους χρήστες του Microsoft Excel. Το σφάλμα είναι γνωστό ότι είναι πιο διαδεδομένο στο Excel 2003 και στο Excel 2007, αν και καμία έκδοση της δημοφιλούς εφαρμογής φύλλου εργασίας της Microsoft για υπολογιστές δεν είναι ασφαλής από την απειλή που είναι το σφάλμα εκτέλεσης 1004. Στις περισσότερες περιπτώσεις, οι χρήστες που επηρεάζονται από αυτό το πρόβλημα βλέπουν ένα από τα δύο διαφορετικές παραλλαγές του σφάλματος χρόνου εκτέλεσης 1004. Στο σύνολό τους, οι δύο παραλλαγές του σφάλματος χρόνου εκτέλεσης 1004 έχουν ως εξής:

Σφάλμα χρόνου εκτέλεσης "1004":

Η μέθοδος αντιγραφής της κλάσης φύλλου εργασίας απέτυχε

Σφάλμα χρόνου εκτέλεσης "1004":

Σφάλμα που καθορίζεται από την εφαρμογή ή καθορίζεται από αντικείμενο

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

Σε αντίθεση με τα χειρότερα τεχνολογικά προβλήματα εκεί έξω, είναι γνωστή η αιτία του σφάλματος χρόνου εκτέλεσης 1004 στο Microsoft Excel. Το σφάλμα χρόνου εκτέλεσης 1004 παρουσιάζεται όταν η μακροεντολή που εκτελεί αντιγράφει το αρχικό φύλλο εργασίας σε ένα βιβλίο εργασίας με ένα καθορισμένο όνομα που δεν αποθηκεύσατε και κλείσατε προτού εκτελέσετε τη μακροεντολή. Ένα παράδειγμα μιας τέτοιας μακροεντολής μπορεί να δει στον ακόλουθο κώδικα:

Sub CopySheetTest () Dim iTemp As Integer Dim oBook As Workbook Dim iCounter As Integer 'Δημιουργήστε ένα νέο κενό βιβλίο εργασίας: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Set oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Προσθήκη καθορισμένου όνομα στο βιβλίο εργασίας 'που αναφέρεται σε ένα εύρος: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= Sheet1! $ A $ 1"' Αποθήκευση του βιβλίου εργασίας: oBook.SaveAs "c: \ test2.xls" «Αντιγράψτε το φύλλο σε βρόχο. Τελικά, "λαμβάνετε το σφάλμα 1004: Η μέθοδος αντιγραφής της" κλάσης φύλλου εργασίας απέτυχε. Για iCounter = 1 έως 275 oBook. Φύλλα εργασίας (1). Αντιγραφή μετά: = oBook. Φύλλα εργασίας (1) Next End Sub

Δεδομένου ότι η αιτία του σφάλματος χρόνου εκτέλεσης 1004 στο πλαίσιο του Microsoft Excel είναι γνωστή, όπως και η ανάλυση. Εκτός από μια λύση σε αυτό το ζήτημα, αυτό που είναι επίσης διαθέσιμο στους χρήστες που επηρεάζονται από αυτό είναι μια λύση που μπορεί να χρησιμοποιηθεί σε περίπτωση που η λύση δεν λειτουργεί ή δεν βρίσκουν τη λύση ως βιώσιμη επιλογή.

Η λύση:

Η λύση σε αυτό το συγκεκριμένο πρόβλημα είναι απλώς να επεξεργαστείτε τον κώδικα της μακροεντολής που εκτελείτε ώστε να αποθηκεύει περιοδικά και να κλείνει το βιβλίο εργασίας προορισμού ενώ δημιουργεί αντίγραφα του φύλλου εργασίας. Ο κώδικας για μια μακροεντολή που κάνει αυτό θα φαίνεται κάτι σύμφωνα με τα ακόλουθα:

Sub CopySheetTest () Dim iTemp As Integer Dim oBook As Workbook Dim iCounter As Integer 'Δημιουργήστε ένα νέο κενό βιβλίο εργασίας: iTemp = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Set oBook = Application.Workbooks.Add Application.SheetsInNewWorkbook = iTemp' Προσθήκη καθορισμένου όνομα στο βιβλίο εργασίας 'που αναφέρεται σε ένα εύρος: oBook.Names.Add Name: = "tempRange", _ RefersTo: = "= Sheet1! $ A $ 1"' Αποθήκευση του βιβλίου εργασίας: oBook.SaveAs "c: \ test2.xls" «Αντιγράψτε το φύλλο σε βρόχο. Τελικά, "λαμβάνετε το σφάλμα 1004: Η μέθοδος αντιγραφής της" κλάσης φύλλου εργασίας απέτυχε. Για iCounter = 1 έως 275 oBook. Φύλλα εργασίας (1). Αντιγραφή μετά: = oBook. Φύλλα εργασίας (1) «Αποσυμπιέστε αυτόν τον κωδικό για την εναλλακτική λύση:« Αποθήκευση, κλείσιμο και άνοιγμα εκ νέου μετά από κάθε 100 επαναλήψεις: Εάν iCounter Mod 100 = 0 Τότε oBook.Close SaveChanges: = True Set oBook = Nothing Set oBook = Application.Workbooks.Open ("c: \ test2.xls") Τέλος εάν το επόμενο τέλος Sub

Σημείωση: Ο ακριβής αριθμός των φορών που μπορείτε να αντιγράψετε ένα φύλλο εργασίας προτού χρειαστεί να αποθηκεύσετε και να κλείσετε το βιβλίο εργασίας, τα αντίγραφα αποθηκεύονται σε διάφορες περιπτώσεις, ανάλογα με το μέγεθος του φύλλου εργασίας στο οποίο δημιουργείτε αντίγραφα.

Η λύση:

Όπως αναφέρθηκε προηγουμένως, υπάρχει επίσης μια λύση σε αυτό το συγκεκριμένο πρόβλημα. Η επίλυση αυτού του ζητήματος είναι ένα απλό θέμα της εισαγωγής ενός νέου φύλλου εργασίας από ένα πρότυπο αντί της δημιουργίας ενός αντιγράφου ενός υπάρχοντος φύλλου εργασίας. Εάν θέλετε να επιλύσετε αυτό το πρόβλημα, πρέπει να κάνετε τα εξής:

  1. ΕκτόξευσηΠροέχω.
  2. Δημιουργήστε ένα νέο βιβλίο εργασίας καιδιαγράφωκάθε φύλλο εργασίας το βιβλίο εργασίας περιέχει αποθήκευση για ένα.
  3. Μορφήτο βιβλίο εργασίας.
  4. Προσθέστε οποιοδήποτε κείμενο, δεδομένα ή / και γραφήματα που θέλετε να έχετε στο πρότυπο από προεπιλογή στο μόνο φύλλο εργασίας που περιέχει τώρα το βιβλίο εργασίας.
  5. Εάν χρησιμοποιείτε το Excel 2003 ή παλαιότερη έκδοση, κάντε κλικ στοΑρχείοΑποθήκευση ως. Εάν χρησιμοποιείτε το Excel 2007 ή μεταγενέστερη έκδοση, από την άλλη πλευρά, κάντε κλικ στοτο γραφείο της Microsoftκουμπί και στη συνέχεια κάντε κλικ στοΑποθήκευση ως.
  6. ΣτοΟνομα αρχείου: πεδίο, πληκτρολογήστε ό, τι θέλετε να ονομάζεται το πρότυπο.
  7. Ανοίξτε το αναπτυσσόμενο μενού δίπλα στοΑποθήκευση ως τύπου: πεδίο και κάντε κλικ στοΠροέχωΠρότυπο (.xlt) εάν χρησιμοποιείτε το Excel 2003 ή παλαιότερη έκδοση, ήΠροέχωΠρότυπο (.xltx) εάν χρησιμοποιείτε το Excel 2007 ή νεότερη έκδοση για να το επιλέξετε.
  8. Κάντε κλικ στοΣώσει.
  9. Μόλις δημιουργήσετε με επιτυχία το πρότυπο, μπορείτε να το εισαγάγετε μέσω προγραμματισμού χρησιμοποιώντας την ακόλουθη γραμμή κώδικα:

    Φύλλα. Τύπος προσθήκης: =μονοπάτι\όνομα αρχείου

Σημείωση: Στη γραμμή κώδικα που περιγράφεται παραπάνω,διαδρομή \ όνομα αρχείου πρέπει να αντικατασταθεί με την πλήρη διαδρομή (συμπεριλαμβανομένου του πλήρους ονόματος αρχείου) για τη θέση του προτύπου φύλλου που μόλις δημιουργήσατε.

$config[zx-auto] not found$config[zx-overlay] not found