Avatar billede fanth Nybegynder
28. april 2008 - 13:21 Der er 5 kommentarer og
1 løsning

WorksheetFunction.IfError

Jeg har en makro hvor jeg gerne vil test en formel for fejl. Hvis der er fejl skal den skrive 0, hvis ikke resultatet. Jeg har nu i længere tid prøvet forskellige løsninger, men kan ikke få nogen af dem til at virke. når jeg prøver at bruge IfError som i dette eksempel i min kode:

Dim testnum
testnum = WorksheetFunction.IfError(5 / 0, 0)

får jeg følgende fejl:
Run-time error '11'
Division by zero

Hele ideén med formlen er jo netop at den skal fange dette og bare skrive 0. Den kører selvsagt perfekt ved f.eks. 5/1.

Gætter på at jeg bruger funtionen forkert, men er der nogen som kan se hvor jeg laver fejlen??

Takker
/F
Avatar billede jkrons Professor
28. april 2008 - 17:34 #1
Problemet er at editorens fejlkontrol checker om der udføres en ulovlig operation, før selve koden udføres. Såp derfor bliver din kode aldrig udført.

Den konkrete situation kan du håndtere på denne måde, men det ogfså er løsningen på dit generelle problem, kan jeg ikek se ud fra dit kodeeksempel:

    On Error Resume Next
    If IsError(5 / 0) Then
        If Err.Number = 11 Then
            testnum = 0
        End If
    End If
Avatar billede kabbak Professor
04. maj 2008 - 19:12 #2
I VBA, bruger jeg

testnum = IsError(Evaluate("5 / 0.0"))
Avatar billede kabbak Professor
04. maj 2008 - 19:17 #3
den kan selvfølgelig laves med variabler

Dim testnum as Bolean
Værdi1 = 5
Værdi =  0,0
testnum = IsError(Evaluate(Værdi1 & " / " Værdi2))
if  testnum then
' den er ok

else
' den er ikke ok

end if
Avatar billede kabbak Professor
04. maj 2008 - 19:23 #4
det var noget sludder den sidste,sådan.

Dim testnum As Boolean
    Værdi1 = 5
    divisor = 0
    testnum = IsError(Evaluate(Værdi1 & "/" & divisor))
    If Not testnum Then
        ' den er ok

    Else
        ' den er ikke ok

    End If
Avatar billede fanth Nybegynder
13. maj 2008 - 10:16 #5
@jkrons
takker smid et svar så smider jeg nogle point

@kabbak
har bygget videre på jkrons svar og var faktisk endt i en løsning der ligner din lidt.
Avatar billede jkrons Professor
13. maj 2008 - 14:15 #6
Her er 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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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