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' ?)
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.