Avatar billede snowball Novice
07. marts 2005 - 10:52 Der er 7 kommentarer og
1 løsning

VBA Error handling

Hej.

Jeg ønsker et eksempel på hvordan man kan lave noget bestemt error handling i VBA.

Det skal foregår sådan så man prøver på at udføre en bestemt ting. Hvis det så går galt, så skal den udføre noget andet. Det er i dette tilfælde ikke optimalt at lave en On Error GoTo ErrorHandling i starten af funktionen, for der skal ske noget forskelligt alt efter hvor fejlen opstår, og den skal stadig udføre resten af koden selvom den fejler i midten af koden. En On Error Resume Next kan som sådan heller ikke lige umiddelbart bruges.

I Delphi ville det se sådan her ud:

<Noget kode>

Try
  Gør noget som måske giver en fejl. Hvis det ikke giver fejl, så fortsætter vi til <Noget mere kode>
Except
  Her ender vi når fejlen sker, og fortsætter derefter til <Noget mere kode>
End;

<Noget mere kode>

Jeg ønsker altså at lave fejlhåndteringen lige når fejlen sker, og helst ikke springe videre til et helt andet sted i min kode, for ovenstående eksempel kan nemt ske at skulle gøres mange gange, så det er lidt kikset at lave 117 fejlhåndterings-funktioner.

På forhånd tak.
Avatar billede bak Forsker
07. marts 2005 - 11:54 #1
Et eksempel på hvorledes det kunne gøres

For Each Cell In AllCells
        Uniqs.Add Cell.Value, CStr(Cell.Value)
        If Err.Number <> 0 Then
            Cell.Interior.Color = vbYellow
            Err.Clear
        end if
Next Cell
Avatar billede snowball Novice
07. marts 2005 - 12:07 #2
bak: Vil du så stadig ikke få sådan en "Runtime error" boks frem når koden fejler?
Avatar billede snowball Novice
07. marts 2005 - 12:08 #3
Eller bruger du On Error Resume Next? :)
Avatar billede bak Forsker
07. marts 2005 - 12:13 #4
Ja til det sidste :-)
Avatar billede bak Forsker
07. marts 2005 - 12:14 #5
Ja til det sidste fordi jeg jo selv vil styre hvad der skal ske hvis en fejl optræder...
Avatar billede snowball Novice
07. marts 2005 - 12:43 #6
Det ser ud til at virke fint, så hvis du lige laver et svar sådan så du kan få dine point :)

Tak for hjælpen.
Avatar billede bak Forsker
07. marts 2005 - 12:46 #7
snowball -> lad den stå åben lidt endnu. Det kan jo være at andre vil vise noget der er bedre...
Avatar billede bak Forsker
08. marts 2005 - 12:07 #8
lægger lige et svar :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester