Avatar billede tvc Seniormester
10. februar 2009 - 16:30 Der er 8 kommentarer og
2 løsninger

Undgå besked om run-time error '91'

Hvordan kan jeg fange fejlmeddelelsen "run-time error '91'" og skyde den ned så brugeren ikke ser denne?

Hilsen

TVC
Avatar billede kabbak Professor
10. februar 2009 - 16:57 #1
Avatar billede tvc Seniormester
10. februar 2009 - 17:05 #2
Den påstår at det er denne linje der giver problemet:

Target.Offset(0, -1).Value = Sheets("Formål").Range("Formal").Find(Target.Value, LookIn:=xlValues).Offset(0, -1)

Jeg kan ikke se, at den her skulle søger efter det der er omtalt i artiklen. Hvad kan problemet så være?
Avatar billede 2c Nybegynder
10. februar 2009 - 17:11 #3
Er det i VBA?

Så læs eventuelt dette link( http://clausoncode.dk/wp/?p=106 ), for hvordan du laver error handling i VBA.
Avatar billede tvc Seniormester
10. februar 2009 - 18:08 #4
Jeg har denne funktion:

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("A9:A100,B9:B100")) Is Nothing Then Exit Sub

    If Target.Column = 1 Then
        Target.Offset(0, 1).Value = Sheets("Formål").Range("F").Find(Target.Value, LookIn:=xlValues).Offset(0, 1)
    End If
 
    If Target.Column = 2 Then
        Target.Offset(0, -1).Value = Sheets("Formål").Range("Formal").Find(Target.Value, LookIn:=xlValues).Offset(0, -1)
    End If

End Sub

Funktionen er en dobbelt opslagsfunktion http://www.eksperten.dk/spm/861696#reply_7314259 og problemet opstår når jeg sletter de værdier der står i området opslagsfunktionen arbejder i. Den bliver påvirket af min sletning med ved ikke hvad den skal gøre. Hvad kan jeg indsætte så den ikke kommer med fejlen?
Avatar billede excelent Ekspert
10. februar 2009 - 20:25 #5
Prøv lige at indsætte denne som linie 3
hvis du trykker på delete tast stopper koden

If Target = "" Then Exit Sub
Avatar billede 2c Nybegynder
10. februar 2009 - 20:26 #6
Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo ErrHandler:

If Intersect(Target, Range("A9:A100,B9:B100")) Is Nothing Then Exit Sub

    If Target.Column = 1 Then
        Target.Offset(0, 1).Value = Sheets("Formål").Range("F").Find(Target.Value, LookIn:=xlValues).Offset(0, 1)
    End If
 
    If Target.Column = 2 Then
        Target.Offset(0, -1).Value = Sheets("Formål").Range("Formal").Find(Target.Value, LookIn:=xlValues).Offset(0, -1)
    End If
ErrHandler:
  Resume Next

End Sub
Avatar billede excelent Ekspert
10. februar 2009 - 20:28 #7
denne er måske bedre

On Error Resume Next
Avatar billede tvc Seniormester
02. marts 2009 - 18:14 #8
Jeg beklager det sene svar. Jeg fik ikke brug for ovenstående, da jeg kom til at spørge om det samme igen og kabbak har svaret på dette.

clausoncode.dk og excelent kan I ikke lægge et svar hver så deler jeg points mellem jer som tak for jeres bidrag?
Avatar billede excelent Ekspert
02. marts 2009 - 18:21 #9
ok
Avatar billede 2c Nybegynder
02. marts 2009 - 21:17 #10
ok
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