Σφάλμα συναρμογής με τη Visual Basic για εφαρμογές

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 146864 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Όταν μια Microsoft Visual Basic, προκύπτει ένα σφάλμα χρόνου εκτέλεσης για εφαρμογές μακροεντολή, εμφανίζεται ένα μήνυμα σφάλματος στην οθόνη και η μακροεντολή διακόπτεται ή απρόβλεπτη.

Για να αποτρέψετε την εφαρμογή από τη διακοπή της λειτουργίας ή συμπεριφέρεται απρόβλεπτα, μπορείτε να συμπεριλάβετε κώδικα μακροεντολής που διακόπτει το σφάλμα και ενημερώνει τον τρόπο χειρισμού της μακροεντολής. Η διαδικασία intercepting και το χειρισμό ενός σφάλματος χρόνου εκτέλεσης ονομάζεται "παγίδευση σφαλμάτων." Το σύνολο οδηγίες που λέει στην εφαρμογή τον τρόπο χειρισμού που ονομάζεται το σφάλμα το "ρουτίνα χειρισμού σφαλμάτων" ή "πρόγραμμα χειρισμού σφαλμάτων."

Περισσότερες πληροφορίες

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς καμία εγγύηση, ρητή ή σιωπηρή. Αυτό περιλαμβάνει αλλά δεν περιορίζεται σε σιωπηρών εγγυήσεων εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες ούτε θα δημιουργήσουν διαδικασίες για να ικανοποιεί συγκεκριμένες απαιτήσεις σας. Κατά την εκτέλεση κώδικα της Visual Basic, ίσως συναντήσετε διάφορους τύπους σφαλμάτων που μπορεί να συναρμοστούν. Μπορείτε να επωφεληθείτε Σφάλμα συναρμογής στο Microsoft Excel, χρησιμοποιώντας τις ακόλουθες συναρτήσεις και δηλώσεις.

Στην κατάσταση σφάλματος

Την πρόταση On Error προκαλεί Visual Basic για εφαρμογές Έναρξη ή διακοπή παγίδευση σφαλμάτων. Την πρόταση On Error καθορίζει επίσης ένα σύνολο προτάσεις για την εκτέλεση αν παρουσιαστεί σφάλμα.

Για πρόσθετες πληροφορίες, ανατρέξτε στα ακόλουθα άρθρα της Γνωσιακής Βάσης της Microsoft:
141571Τρόπος χρήσης "Σε σφάλμα" χειρισμό σφαλμάτων σε μια μακροεντολή

Err συνάρτηση

Η συνάρτηση Err επιστρέφει τον αριθμό Παρουσιάστηκε σφάλμα.

Το παράδειγμα χρησιμοποιεί τη συνάρτηση Err:
   Msgbox "The most recent error number is " & Err & _
      ". Its message text is: " & Error(Err)
				
Ο παρακάτω πίνακας περιέχει μια λίστα με τα ανιχνεύσιμο σφάλμα κωδικών ενδέχεται να αντιμετωπίσετε όταν χρησιμοποιείτε τη συνάρτηση Err.
   Error code   Error message
   ----------   -------------
   3            Return without GoSub
   5            Invalid procedure call
   6            Overflow
   7            Out of memory
   9            Subscript out of range
   10           Duplicate definition (versions 5.0 and 7.0)
   10           This array is fixed or temporarily locked (version97)
   11           Division by zero
   13           Type mismatch
   14           Out of string space
   16           String formula too complex (versions 5.0 and 7.0)
   16           Expression too complex (version 97)
   17           Can't perform requested operation
   18           User interrupt occurred
   20           Resume without error
   28           Out of stack space
   35           Sub or function not defined (versions 5.0 and 7.0)
   35           Sub, function, or property not defined (version 97)
   47           Too many DLL application clients (version 97)
   48           Error in loading DLL
   49           Bad DLL calling convention
   51           Internal error
   52           Bad file name or number
   53           File not found
   54           Bad file mode
   55           File already open
   57           Device I/O error
   58           File already exists
   59           Bad record length
   61           Disk full
   62           Input past end of line
   63           Bad record number
   67           Too many files
   68           Device unavailable
   70           Permission denied
   71           Disk not ready
   74           Can't rename with different drive
   75           Path/File access error
   76           Path not found
   91           Object variable not set (versions 5.0 and 7.0)
   91           Object variable or With block variable not set
                (version 97)
   92           For Loop not initialized
   93           Invalid pattern string
   94           Invalid use of Null
   95           User-defined error (versions 5.0 and 7.0 only)
   298          System DLL could not be loaded (version 97)
   320          Can't use character device names in specified file names
                (version 97)
   321          Invalid file format (version 97)
   322          Can't create necessary temporary file (version 97)
   323          Can't load module; invalid format (versions 5.0 and 7.0)
   325          Invalid format in resource file (version 97)
   327          Data value named was not found (version 97)
   328          Illegal parameter; can't write arrays (version 97)
   335          Could not access system registry (version 97)
   336          ActiveX component not correctly registered (version 97)
   337          ActiveX component not found (version 97)
   338          ActiveX component did not correctly run (version 97)
   360          Object already loaded (version 97)
   361          Can't load or unload this object (version 97)
   363          Specified ActiveX control not found (version 97)
   364          Object was unloaded (version 97)
   365          Unable to unload within this context (version 97)
   368          The specified file is out of date. This program requires
                a newer version (version 97)
   371          The specified object can't be used as an owner form for
                Show (version 97)
   380          Invalid property value (version 97)
   381          Invalid property-array index (version 97)
   382          Property Set can't be executed at run time (version 97)
   383          Property Set can't be used with a read-only property
                (version 97)
   385          Need property-array index (version 97)
   387          Property Set not permitted (version 97)
   393          Property Get can't be executed at run time (version 97)
   394          Property Get can't be executed on write-only property
                (version 97)
   400          Form already displayed; can't show modally (version 97)
   402          Code must close topmost modal form first (version 97)
   419          Permission to use object denied (version 97)
   422          Property not found (version 97)
   423          Property or method not found
   424          Object required
   425          Invalid object use (version 97)
   429          ActiveX component can't create object or return
                reference to this object (version 97)
   430          Class doesn't support OLE Automation
   430          Class doesn't support Automation (version 97)
   432          File name or class name not found during Automation
                operation (version 97)

   438          Object doesn't support this property or method
   440          OLE Automation error
   440          Automation error (version 97)
   442          Connection to type library or object library for remote
                process has been lost (version 97)
   443          Automation object doesn't have a default value
                (version 97)
   445          Object doesn't support this action
   446          Object doesn't support named arguments
   447          Object doesn't support current locale settings
   448          Named argument not found
   449          Argument not optional
   449          Argument not optional or invalid property assignment
                (version 97)
   450          Wrong number of arguments
   450          Wrong number of arguments or invalid property assignment
                (version 97)
   451          Object not a collection
   452          Invalid ordinal
   453          Specified DLL function not found
   454          Code resource not found
   455          Code resource lock error
   457          This key is already associated with an element of this
                collection (version 97)
   458          Variable uses a type not supported in Visual Basic
                (version 97)
   459          This component doesn't support events (version 97)
   460          Invalid clipboard format (version 97)
   461          Specified format doesn't match format of data
                (version 97)
   480          Can't create AutoRedraw image (version 97)
   481          Invalid picture (version 97)
   482          Printer error (version 97)
   483          Printer driver does not support specified property
                (version 97)
   484          Problem getting printer information from the system.
                Make sure the printer is set up correctly (version 97)
   485          Invalid picture type (version 97)
   486          Can't print form image to this type of printer
                (version 97)
   735          Can't save file to Temp directory (version 97)
   744          Search text not found (version 97)
   746          Replacements too long (version 97)
   1000         Classname does not have propertyname property
                (versions 5.0 and 7.0)
   1001         Classname does not have methodname method
                (versions 5.0 and 7.0)
   1002         Missing required argument argumentname
                (versions 5.0 and 7.0)
   1003         Invalid number of arguments (versions 5.0 and 7.0)
   1004         Methodname method of classname class failed
                (versions 5.0 and 7.0)
   1005         Unable to set the propertyname property of the classname
                class (versions 5.0 and 7.0)
   1006         Unable to get the propertyname property of the classname

                class (versions 5.0 and 7.0)
   31001        Out of memory (version 97)
   31004        No object (version 97)
   31018        Class is not set (version 97)
   31027        Unable to activate object (version 97)
   31032        Unable to create embedded object (version 97)
   31036        Error saving to file (version 97)
   31037        Error loading from file (version 97)
				
Για πρόσθετες πληροφορίες, ανατρέξτε στο ακόλουθο άρθρο Γνωσιακή Βάση της Microsoft:
142138ΑΠΕΝΕΡΓΟΠΟΊΗΣΗ: Μια εξήγηση ανιχνεύσιμα σφάλματα στη Visual Basic για εφαρμογές

Συνάρτηση σφάλματος

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

Το παράδειγμα χρησιμοποιεί τη συνάρτηση σφάλματος:
   Msgbox "The message text of the error is: " & Error(Err)
				

Δήλωση σφάλματος

Δήλωση σφάλματος εξομοιώνει την εμφάνιση ενός σφάλματος από σας επιτρέπει να αντιστοιχίσετε έναν αριθμό προσαρμοσμένου σφάλματος στη συνάρτηση Err. Χρήστης αυτών- Σφάλμα καθορισμένες τιμές είναι τιμές που ορίζετε για σας διαδικασίες και που αποθηκεύονται πάντα σε μεταβλητές τύπου δεδομένων Variant. Κοινή χρήση αυτού του τύπος τιμής σφάλματος είναι στις διαδικασίες που πολλά ορίσματα και να επιστρέψετε ένα η τιμή. Για παράδειγμα, ας υποθέσουμε ότι η επιστρεφόμενη τιμή είναι έγκυρη μόνο εάν τα ορίσματα εμπίπτουν σε μια συγκεκριμένη περιοχή. Διαδικασία σας να ελέγξετε τα ορίσματα που το παρέχει χρήστη και εάν τα ορίσματα δεν βρίσκονται σε αποδεκτή περιοχή, μπορείτε να έχουν διαδικασία επιστρέφει την τιμή σφάλματος κατάλληλα.

Το σφάλμα είναι ένα υποκατηγορία τύπου δεδομένων Variant και όταν χρησιμοποιείται ο όρος "τιμή σφάλματος", το συνήθως σημαίνει ότι είναι μια μεταβλητή τύπου Variant και ότι περιέχει μια η τιμή που αναγνωρίζει η Visual Basic for Applications ως σφάλμα που ορίζονται από το χρήστη. Τιμές σφάλματος χρησιμοποιούνται σε μια διαδικασία για να υποδείξετε ότι έχουν συνθήκες σφάλματος Παρουσιάστηκε. Σε αντίθεση με τη συνήθη σφάλματα χρόνου εκτέλεσης, αυτά τα σφάλματα δεν διακόπτουν σας κωδικός επειδή αναγνωρίζονται ως κανονική μεταβλητές και δεν σφάλματα. Σας διαδικασίες να ελέγξετε για αυτές τις τιμές σφάλματος και λαμβάνουν τα κατάλληλα διορθωτικά ενέργειες.

Μπορείτε επίσης να χρησιμοποιήσετε την πρόταση Error για να προσομοιώσετε χρόνου εκτέλεσης σφάλματα. Αυτό είναι ιδιαίτερα χρήσιμο όταν ελέγχετε τις εφαρμογές σας, ή Όταν θέλετε να αντιμετωπίσει μια συγκεκριμένη συνθήκη ως ισοδύναμο προς εκτέλεση ενός- Σφάλμα χρόνου. Μπορεί η προσομοίωση οποιαδήποτε της Visual Basic for Applications σφάλμα χρόνου εκτέλεσης δίνοντας τον κωδικό σφάλματος για σφάλμα σε μια πρόταση σφάλμα. Μπορείτε επίσης να Χρησιμοποιήστε την πρόταση σφάλματος για να δημιουργήσετε το δικό σας σφάλματα χρήστη, παρέχοντας ένα ο κωδικός σφάλματος που αντιστοιχούν σε Visual Basic για εφαρμογές χρόνου εκτέλεσης σφάλμα. Στον πίνακα που περιέχει μια λίστα ενσωματωμένων σφάλματα που εμφανίζεται παραπάνω σε αυτό άρθρο (στην ενότητα "Συνάρτηση Err"). Αυτήν τη στιγμή της Visual Basic for Εφαρμογές δεν χρησιμοποιούν όλων των αριθμών που είναι διαθέσιμες για ενσωματωμένα σφάλματα. Στο μελλοντικές εκδόσεις της Visual Basic για εφαρμογές, θα εσωτερικής αριθμών Αυξήστε την πιο - σφάλματα προστίθενται. Συνιστάται να ξεκινήσετε σας αριθμούς σφαλμάτων σε 50.000 και την εργασία σας τρόπο έως 65.535 για την αποφυγή πιθανών διενέξεις στο μέλλον.

Παράδειγμα με σφάλμα πρόταση για την προσομοίωση Τα σφάλματα χρόνου εκτέλεσης:
   Sub Test()

      On Error Resume Next
      Error 50000          'set the value of Err to 50000

      If Err = 50000 Then
         MsgBox "my own error occurred"
      End If

   End Sub
				
Όταν εκτελείται η μακροεντολή δοκιμής, εμφανίζεται ένα πλαίσιο μηνύματος που περιέχει "μου Παρουσιάστηκε σφάλμα δική"ως το μήνυμα.

Η συνάρτηση CVErr

Η συνάρτηση CVErr χρησιμοποιείται για να δημιουργήσετε τιμές σφάλματος. Η συνάρτηση CVErr συνάρτηση λαμβάνει ένα όρισμα που πρέπει να είναι ένας ακέραιος ή είναι μια μεταβλητή που περιέχει έναν ακέραιο.
   NoRadius = CVErr(2010)

   NotANumber = 2020
   InvalidArgument = CVErr(NotANumber)
				
Το παράδειγμα χρησιμοποιεί τη συνάρτηση CVErr:
   Public NoRadius, NotANumber

   Sub AreaOfCircle()
      Const PI = 3.142
      NoRadius = CVErr(2010)
      NotANumber = CVErr(2020)
      Radius = CheckData(InputBox("Enter the radius: "))
      If IsError(Radius) Then
         Select Case Radius
            Case NoRadius
               MsgBox "Error: No radius given."
            Case NotANumber
               MsgBox "Error: Radius is not a number."
            Case Else
               MsgBox "Unknown Error."
         End Select
      Else
         MsgBox "The area of the circle is " & (PI * Radius ^ 2)
      End If
   End Sub

   Function CheckData(TheRadius)
      If Not IsNumeric(TheRadius) Then
         CheckData = NotANumber
      ElseIf TheRadius = 0 Then
         CheckData = NoRadius
      Else
         CheckData = TheRadius
      End If
   End Function
				

Χρησιμοποιώντας ενσωματωμένες τιμές σφάλματος

Υπάρχουν επτά τιμές σφάλματος ενσωματωμένες στο Microsoft Excel. Το στον παρακάτω πίνακα εμφανίζεται ο αριθμός σφάλματος (σταθερά) τιμή λεκτικής σταθεράς σφάλματος, και το η τιμή σφάλματος που έχει μετατραπεί.
Error number (Constant)   Literal error value     Converted error value
-----------------------------------------------------------------------

xlErrDiv0                   [#DIV/0!]               CVErr(xlErrDiv0)
xlErrNA                     [#N/A]                  CVErr(xlErrNA)
xlErrName                   [#NAME?]                CVErr(xlErrName)
xlErrNull                   [#NULL!]                CVErr(xlErrNull)
xlErrNum                    [#NUM!]                 CVErr(xlErrNum)
xlErrRef                    [#REF!]                 CVErr(xlErrRef)
xlErrValue                  [#VALUE!]
CVErr(xlErrValue)
				
Εργαστείτε με αυτές τις τιμές σφάλματος ενσωματωμένο φύλλο εργασίας με τον ίδιο τρόπο εργάζεστε με τα σφάλματα που ορίζονται από το χρήστη--όπως αριθμοί μετατρέπονται σε τιμές σφάλματος χρησιμοποιώντας τη συνάρτηση CVErr. Η μόνη διαφορά είναι ότι για τα σφάλματα φύλλου εργασίας Visual Basic for Applications παρέχει αριθμούς σφαλμάτων ως ενσωματωμένες σταθερές και παρέχει επίσης σφάλμα κατεξοχήν τιμές. Τα στοιχεία αυτά δεν παρέχονται Οι τιμές σφάλματος που ορίζεται από το χρήστη. Οι τιμές σφάλματος κατεξοχήν πρέπει να περικλείονται σε τετράγωνο αγκύλες, όπως φαίνεται στον παραπάνω πίνακα.

Παράδειγμα χρησιμοποιώντας την ενσωματωμένη σφάλμα Τιμές:
   Function Commission(SharesSold,PricePerShare)
      If Not (IsNumeric(SharesSold) And IsNumeric(PricePerShare)) Then
         Commission = CVErr(xlErrNum)
      Else
         TotalSalePrice = ShareSold * PricePerShare
         If TotalSalePrice <= 15000 Then
            Commission = 25 + 0.03 * SharesSold
         Else
            Commission = 25 + 0.03 * (0.9 * SharesSold)
         End If
      End If
   End Function
				

Συγκέντρωση κώδικα χειρισμού σφαλμάτων

Όταν προσθέτετε χειρισμό σφαλμάτων κώδικα Visual Basic για Εφαρμογές μακροεντολές, θα ανακαλύψετε ότι εξετάζονται τα ίδια σφάλματα ξανά και ξανά. Μπορείτε να μειώσετε το μέγεθος του κώδικά σας και η προσπάθεια απαιτείται για να γράψετε κώδικα γράφοντας λίγα διαδικασίες που σας χειρισμός σφαλμάτων να καλέσετε κώδικα χειρισμού συνηθισμένες καταστάσεις σφάλματος.

Το ακόλουθο ένα παράδειγμα διαδικασίας συνάρτησης που εμφανίζει ένα μήνυμα που αντιστοιχεί στο το σφάλμα που παρουσιάστηκε και όπου είναι δυνατόν, επιτρέπει στο χρήστη να καθορίσει Ποιες ενέργειες θα πραγματοποιηθούν την επόμενη επιλέγοντας ένα συγκεκριμένο κουμπί. Στη συνέχεια, αποδίδει το κωδικός αριθμός της διαδικασίας που το κάλεσε.
   Public Const RESUME_STATEMENT = 0   'Resume
   Public Const RESUME_NEXT = 1        'Resume Next
   Public Const UNRECOVERABLE = 2      'Unrecoverable error
   Public Const UNRECOGNIZED = 3       'Unrecognized error
   Public Const ERR_DEVICEUNAVAILABLE = 68
   Public Const ERR_BADFILENAMEORNUMBER = 52
   Public Const ERR_PATHDOESNOTEXIST = 76
   Public Const ERR_BADFILEMODE = 54


  Function FileErrors(errVal As Integer) As Integer
   Dim MsgType As Integer, Msg As String, Response As Integer
      MsgType = vbExalamation
      Select Case errVal
         Case ERR_DEVICEUNAVAILABLE     'Error #68
            Msg = "That device is unavailable."
            MsgType = MsgType + vbAbortRetryIgnore
         Case BADFILENAMEORNUMBER      'Errors #64 & 52
            Msg = "That filename is not valid."
            MsgType = MsgType + vbOKCancel
         Case PATHDOESNOTEXIST      'Error #76
            Msg = "That path does not exist."
            MsgType = MsgType + vbOKCancel
         Case BADFILEMODE      'Error #54
            Msg = "Can not open the file for that type of access."
            MsgType = MsgType + vbOKCancel
         Case Else
            FileErrors = UNRECOGNIZED
            Exit Function
      End Select
      Response = MsgBox(Msg, MsgType, "Disk Error")
      Select Case Response
         Case vbOK, vbRetry
            FileErrors = RESUME_STATEMENT
         Case vbIgnore
            FileErrors = RESUME_NEXT
         Case vbCancel, vbAbort
            FileErrors = UNRECOVERABLE
         Case Else
            FileErrors = UNRECOGNIZED
      End Select
   End Function
				

Χειρισμός χρήστη διακοπές

Ένας χρήστης να διακόψετε μια διαδικασία Visual Basic for Applications πατώντας το πλήκτρο CTRL + BREAK ή το πλήκτρο ESC (ΕΝΤΟΛΉ + ΤΕΛΕΊΑ στο Macintosh). Είναι δυνατόν να Απενεργοποίηση διακοπών για τις διαδικασίες των τελικών εφαρμογών. Ωστόσο, εάν Μην απενεργοποιήσετε διακοπές χρήστη στην ολοκληρωμένη διαδικασία, μπορείτε να κάνετε ότι ότι η διαδικασία σας ειδοποιείται όταν παρουσιάστηκε διακοπή, ώστε να να κλείσετε αρχεία, αποσύνδεση από κοινόχρηστους πόρους ή επαναφορά τροποποιηθεί μεταβλητές πριν από την επιστροφή του ελέγχου της εφαρμογής στο χρήστη.

Μπορείτε να παγιδεύσετε χρήστη διακοπές σας διαδικασίες, ορίζοντας την EnableCancelKey ιδιότητα xlErrorHandler. Όταν ορίσετε αυτήν την ιδιότητα, θα όλες τις διακοπές Δημιουργία ενός χρόνου εκτέλεσης 18, ο αριθμός σφάλματος που να συναρμοστούν χρησιμοποιώντας ένα σφάλμα σε η πρόταση. Μπορείτε να χειριστείτε το σφάλμα για να διακόψετε τη διαδικασία και να κλείσετε το πρόγραμμα. Εάν η δήλωση συνέχιση χρησιμοποιείται για να συνεχίσετε τη διαδικασία μετά από μια συναρμογής Σφάλμα χρόνου εκτέλεσης, η διακοπή παραβλέπεται.

Είναι επίσης δυνατό να Παράβλεψη εντελώς χρήστη διακοπές, ορίζοντας την ιδιότητα EnableCancelKey xlDisabled. Σε αυτήν την κατάσταση, το Microsoft Excel παραβλέπει όλες τις προσπάθειες από το χρήστη διακοπή της διαδικασίας που εκτελείται. Για να επαναφέρετε την προεπιλεγμένη επεξεργασία διακοπής Αλλάξτε τη ρύθμιση της ιδιότητας EnableCancelKey xlInterrupt. Για να αποτρέψετε ένα μόνιμη Απενεργοποίηση χρήστη διακοπές, το Microsoft Excel πάντα από τη διαδικασία Επαναφέρει την προεπιλεγμένη ρύθμιση της ιδιότητας EnableCancelKey xlInterrupt Όταν ολοκληρωθεί η διαδικασία της εκτέλεσης. Για να εξασφαλίσετε ότι οι διακοπές ο χειρισμός σωστά τον κωδικό σας, πρέπει να ρητά απενεργοποιήσετε ή συναρμογής της Διακόπτει κάθε φορά που εκτελείται η διαδικασία. Πρέπει να σημειωθεί ότι μόνο ένα πρόγραμμα χειρισμού διακοπών, μπορεί να χρησιμοποιηθεί για κάθε διαδικασία και το ίδιο πρόγραμμα χειρισμού χρησιμοποιείται για όλα τα σφάλματα χρόνου εκτέλεσης που εντοπίστηκε από το καθεστώς αυτό.

Το το παρακάτω παράδειγμα δείχνει μια διαδικασία που απαιτεί μεγάλο χρονικό διάστημα Για να ολοκληρωθεί. Εάν ένας χρήστης διακόπτει τη διαδικασία, συναρμογή σφάλμα. Ο χρήστης Διακοπή πρώτα επιβεβαιώνει ότι στην πραγματικότητα να σταματήσει τη διαδικασία και στη συνέχεια Έξοδος από τη διαδικασία με συστηματικό τρόπο.
   Sub ProcessData()
      'Set up a user interrupt trapping as a run-time error
      On Error GoTo UserInterrupt
      Application.EnableCancelKey = xlErrorHandler

      'Start a long duration task
      For x = 1 to 1000000
         For y = 1 to 10
         Next y
      Next x

      Exit Sub
   UserInterrupt:
      If Err = 18 Then
         If MsgBox ("Stop processing records?", vbYesNo) = vbNo Then
            'Continue running at the point procedure was interrupted
            Resume
         Else
            'Handle other errors that occur
            MsgBox Error(Err)
         End If
      End If
   End Sub
				
Εάν εκτελέσετε την μακροεντολή ProcessData και, στη συνέχεια, πιέστε CTRL + BREAK ένα εμφανίζεται το πλαίσιο μηνύματος που σας ζητά να διακόψετε την επεξεργασία εγγραφών. Εάν έχετε Κάντε κλικ στο κουμπί "Ναι", εμφανίζεται ένα άλλο πλαίσιο μηνύματος με "Παρουσιάστηκε διακοπή από το χρήστη". Εάν έχετε Κάντε κλικ στο OK σε αυτό το πλαίσιο μηνύματος, η μακροεντολή τελειώνει. Εάν κάνετε κλικ στο κουμπί όχι στο πρώτο πλαίσιο μηνύματος, η μακροεντολή συνεχίζει.

Συνέχιση δήλωση

Δήλωση Resume συνεχίζει την εκτέλεση κώδικα μετά από σφάλμα ρουτίνα χειρισμού έχει ολοκληρωθεί.

Αναφορές

Excel 97

Για περισσότερες πληροφορίες σχετικά με την παγίδευση σφαλμάτων μακροεντολής, κάντε κλικ στο ευρετήριο καρτέλα "στη Βοήθεια του Microsoft Excel 97 Visual Basic, πληκτρολογήστε το ακόλουθο κείμενο
Παγίδευση σφαλμάτων
και στη συνέχεια κάντε διπλό κλικ στο επιλεγμένο κείμενο, για να μεταβείτε στην "Trappable Σφάλματα"θέμα.

Excel 7.0

Για περισσότερες πληροφορίες σχετικά με την παγίδευση σφαλμάτων μακροεντολής, κάντε κλικ στο ευρετήριο καρτέλα "στη Βοήθεια του Microsoft Excel 7.0, πληκτρολογήστε το ακόλουθο κείμενο
Παγίδευση σφαλμάτων
και στη συνέχεια κάντε διπλό κλικ στο επιλεγμένο κείμενο, για να μεταβείτε στην "σφάλμα θέμα συναρμογής".

Excel 5.0

Στον "Οδηγό χρήσης του Visual Basic", έκδοση 5.0, κεφάλαιο 9 "Χειρισμός Σφάλματα και τιμές σφάλματος", ανατρέξτε στα ακόλουθα θέματα:
  • "Εμποδίζει τον κώδικά σας από διακοπή ή ενεργούν Απρόβλεπτη"
  • "Δημιουργία τιμές σφάλματος που δεν διακόπτουν σας Κωδικός"
  • "Χρησιμοποιώντας τις ενσωματωμένες τιμές σφάλματος της Microsoft Excel"
  • "Τεχνικές χειρισμού σφαλμάτων για προχωρημένους"

Ιδιότητες

Αναγν. άρθρου: 146864 - Τελευταία αναθεώρηση: Δευτέρα, 19 Σεπτεμβρίου 2011 - Αναθεώρηση: 7.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel 5.0 για Macintosh
Λέξεις-κλειδιά: 
kbdtacode kbhowto kbprogramming kbmt KB146864 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:146864

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com