Hoi allemaal
Je macro's crashten niet en nu ja. Het is een puinhoop, zelfs jammer!
SolidWorks en meer in het algemeen Windows informeren u niet over de wijzigingen die zij aanbrengen,
Je collega's vertellen je door tijdgebrek niet de details van hun updates van dit en dat.
Conclusie: je macro's kunnen pas na verloop van tijd betrouwbaar zijn!
Twee voorzorgsmaatregelen die ik naar mijn mening moet nemen:
- Beschadiging van het bestand dat een macro bevat>> het is zeldzaam maar doet evolutionaire archivering (evolutionair = n°
in bestandsnamen): vraag een import aan vanuit de "VBA"-programmeerinterface,
regelmatig, of, wanneer uw macro "gewicht" is geworden. Een copy-paste in Word geeft alleen
tekst, maar waarom niet (hack).
- de macro heeft geen foutafhandeling >> gebruik ten minste de instructies "On error goto" of "On error"
volgende hervatten" (klik op een trefwoord in uw macro [bijv. "fout"] en druk vervolgens op F1 om meer informatie over de
lokale of online hulp).
Een voorbeeld van Excel-macro's met een embryonale foutafhandeling (woorden onderstreept):
Private Sub Workbook_BeforeClose (Annuleren als Booleaans)
On Error GoTo ErrorProcessingTe plaatsen aan het begin van elke procedure (al dan niet op basis van gebeurtenissen)
'Verberg systematisch het blad "Instellingen"
Bladen("Parameters"). Zichtbaar = Onwaar
'Keer terug naar de zoom van het blad 'Kleine gebruikershandleiding' zoals het was bij het openen van het bestand.
Bladen ("Een kleine handleiding"). Activeren
Bereik ("A1:AI111"). Selecteer: ActiveWindow.Zoom = Waar: [A1]. Selecteren
'Keer terug naar de zoom van het blad "EVAL_GLOBALE_EXPLO2015" zoals het was bij het openen van het bestand.
Met vellen ("EVAL_GLOBALE_EXPLO2015")
. Activeren
Bereik ("A1:S30"). Selecteer: ActiveWindow.Zoom = Waar: [B6]. Selecteren
'Keer terug naar de visualisatie zoals deze was bij het openen van het bestand.
[CTRL1] = 1: VisualTeaching 'Bekijk alle leringen.
[CTRL2] = 1: VisualGroup' Visualiseer de eerste van de groepen studenten.
'Forceer de modus "Invoer ingeschakeld" zoals bij het openen van een bestand.
. Opheffen
. Vormen("InputStatus"). TextFrame.Characters.Text = "Invoer ingeschakeld": [InputStatus] = Waar
. Beschermen
Eindigen met
'Sla het bestand automatisch op voordat het wordt gesloten.
ActiveWorkbook.Opslaan
Sub afsluiten
Behandeling: Etiket
Stop 'Ter verificatie'
'Als de bladeren bijvoorbeeld van naam zijn veranderd,
'Voor het geval dat...
'Foutverwerking is hier niet geprogrammeerd...
Einde Sub
Als een regel onder On Error GoTo Error "crappy" is, veroorzaakt het een fout wanneer de macro wordt uitgevoerd, dan stopt het bij de instructie "Stop". Dit duidt op een fout, het is een eerste stap.
Een kleine truc om de "waardeloze" regel te vinden> klik stap voor stap op (
) om de macro te starten en deze te laten ontvouwen > een geel spoor de regel aangeeft die zal worden uitgevoerd. Zodra de fout verschijnt, wordt de waardeloze regel niet uitgevoerd en gaat het proces verder onder het label ErrorProcessing:.
De minimale foutafhandeling is een 'Stop' (trefwoord) onder ErrorHandling: . Van daaruit kunt u het foutnummer ophalen en gebruiken om de fout te verwerken, te waarschuwen, te ....
Fijne dag.