24. september 2003 - 15:01Der er
10 kommentarer og 2 løsninger
ErrorHandler virker ikke i Do Loop løkke
Jeg har en Do .. Loop løkke, som gennemløber alle regneark i mit Excel-projekt. I hvert regneark nulstiller vba samtlige tal (kun tal - ikke formler og ikke tekst) Dette gør jeg med: Selection.SpecialCells(xlCellTypeConstants, 21).Select: Selection.Value = 0
... men i nogle ark er der slet ingen konstanter, kun formler og tekst. Derfor har jeg tilføjet "On Error GoTo Fortset" før ovennævnte kode (og naturligvis "Fortset:" efter denne del af koden)
Første gang vba finder et regneark uden konstanter virker ErrorHandleren fint, og koden "spiller videre" fra "Fortset:" linien. Men anden gang det sker får jeg fejlmeldingen "Run-time error '1004': Der blev ikke fundet nogen celler" (Nej jeg ved sq godt, der ikke er nogen celler, men det var vel det ErrorHandleren skulle tage sig af - eller hva' ?)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Har du en Resume i din error handler? Hvis ikke fejlhåndteringen afsluttes med en Resume er handleren stadig aktiv, og så kan den ikke håndtere flere fejl.
Til tuctoh: Jeg forsøgt både med "err.clear" og med "On Error GoTo 0", men lige lidt hjælper det. Første gang løkken støder på en "Run-time error" glider den fint videre til ErrorHandler-linien, men næste gang er det som om hele ErrorHandleren er sat ud af spillet og jeg får fejlmeldingen.
Til venne: Hvordan skal jeg bruge "Resume", når jeg jo netop ikke ønsker at gå tilbage til kodelinien umiddelbart efter fejlens opståen ?
I er dæl'mæ hurtige med svar =:-D Jeg havde i første omgang placeret det jeg kaldte "ErrorHandler-linierne" (dvs.: "Fejlbehandling: + diverse kodelinier") som en forlængelse af kodelinierne i bunden af min Do-Loop løkke. Jeg har nu flyttet disse linier ned i bunden af hele proceduren, og umiddelbart forinden indsat "Exit Sub". Derefter har jeg tilføjet en "Resume TilbageIgen" som peger på den kodelinie, der skal fortsættes fra. Det virker nu fint :-)
... men jeg blev ikke klog på, om "err.clear" ville kunne gøre det bedre/fiksere ?
Ja, jeg har (heldigvis?) ikke mulighed for at sidde ved skærmen hele tiden...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.