Avatar billede gider_ikke_mere Nybegynder
08. september 2004 - 12:26 Der er 9 kommentarer og
1 løsning

Ignorer VBA error

Hvordan får jeg VBA til at ignorere en error "runtime 1004" når den stadig skal udføre koden uden at springe noget over
Avatar billede stewen Praktikant
08. september 2004 - 12:49 #1
Hvad med

On Error Resume Next
Avatar billede gider_ikke_mere Nybegynder
08. september 2004 - 12:52 #2
... da springer den over fejlen og fortsætter i koden. Det må den ikke!
Avatar billede bak Forsker
08. september 2004 - 13:00 #3
Vis lige koden og hvor den fejler
Avatar billede gider_ikke_mere Nybegynder
08. september 2004 - 13:42 #4
Jeg har i [indsæt] -> [navn]-> [definer] lavet følgende cellereference "TEST" med formlen:
=FORSKYDNING(START;SAMMENLIGN(PROJEKT!$E$1446;LISTE;0)+1;11;1;32)
Denne cellereference er i princippet fejl da PROJEKT!$E$1446 er tom.

I en celle, lad os kalde den A1 skal jeg have indsat følgende kode:
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=TEST"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

... men koden melder selvfølgelig fejl ved:

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=TEST"

da TEST er fejl.

Ved kørsel af makroen får jeg en fejl 1004.
Avatar billede gider_ikke_mere Nybegynder
08. september 2004 - 14:34 #5
Jeg kan også sende et ark som demonstrerer fejlen
Avatar billede jkrons Professor
08. september 2004 - 15:01 #6
Kan du ikke bare lade makroen indsætte formlen i Test, efter at du har tilføjet valideringsreglen:

Fx

With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=test"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
   
    Worksheets("projekt").Range("test").FormulaLocal = "=FORSKYDNING(START;SAMMENLIGN(PROJEKT!$E$1446;LISTE;0)+1;11;1;32)"

Projekt skal selvfølgelig rettes til det ark, som tesrt befinder sig i? Så kører koden uden fejl, selv om projekt!e1446 er tom.
Avatar billede gider_ikke_mere Nybegynder
08. september 2004 - 15:09 #7
TEST er konstant oprettet, da det er et ark der bliver brugt igen og igen. TEST er i øvrigt 1 ud af et par hundrede tilsvarende.
Når jeg gendanner arket til næste bruger, gendanner jeg også en del formler med VBA, bl.a. nogle celler med Selection.Validation
Avatar billede gider_ikke_mere Nybegynder
08. september 2004 - 15:20 #8
Man kan undre sig, især når man ikke har så meget forstand på VBA.
Indsætter man i en makro koden ActiveCell.FormulaR1C1 = "=skod", og skod ikke er en gyldig reference, giver VBA ingen fejl. Dette burde være mindst lige så stor en fejl da man kalder på noget der ikke eksisterer.
Avatar billede gider_ikke_mere Nybegynder
16. september 2004 - 08:57 #9
Har fundet en anden løsning!
Avatar billede gider_ikke_mere Nybegynder
16. september 2004 - 14:03 #10
I min forskydning tilføjer jeg en snydereference bestående af et " " (mellemrum). I cellen $E$1446 tilsvarende! Derved er der ikke fejl i "=test". Denne løsning gør også at jeg ikke har en masse valideringer som for det meste står med fejl.
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