Avatar billede Peter Praktikant
26. januar 2004 - 21:01 Der er 8 kommentarer og
1 løsning

hjælp til vba-script, .autofill range som er en celle.

Hej,
jeg har lidt problemer med et script jeg bruger i et regneark:
Lastrow = [A6].End(xlDown).Row
With [I7]
    .Formula = "=if(isna(VLOOKUP(A7,Dates,2,FALSE)),""Unknown"",VLOOKUP(A7,Dates,2,FALSE))"
    .NumberFormat = "dd/mm/yyyy"
    .Borders.Weight = xlThin
    .AutoFill Destination:=Range("I7:I" & Lastrow)
End With

Først finder jeg sidste række, dette kan være fra række 7 og nedefter. Dernæst udfylder jeg datoer i cellerne fra I7 og ned til sidste celle. Dette virker fint når der er mere end 1 celle i rangen I7:I & lastrow. Hvis der kun er 1 linje får jeg en fejl når scriptet køres.
Håber nogle kan se fejlen og en løsning.
Avatar billede Slettet bruger
26. januar 2004 - 21:04 #1
Hvilken fejlbesked får du ?
Avatar billede Peter Praktikant
26. januar 2004 - 21:06 #2
run-time error '1004'
autofill method of range class failed
Avatar billede Slettet bruger
26. januar 2004 - 21:35 #3
Du kan også vælge at droppe autofill og bruge følgende.

-------------
Lastrow = 1
With Range("I7:I" & Lastrow)
    .Formula = "=if(isna(VLOOKUP(A7,Dates,2,FALSE)),""Unknown"",VLOOKUP(A7,Dates,2,FALSE))"
    .NumberFormat = "dd/mm/yyyy"
    .Borders.Weight = xlThin
End With
----------------------

Det burde give samme effekt
Avatar billede Slettet bruger
26. januar 2004 - 21:38 #4
2 sek...

Lastrow skal selvfølgelig være det den var fra starten..
Lastrow = [A6].End(xlDown).Row
Avatar billede bak Forsker
26. januar 2004 - 21:41 #5
eller bare indsætte on error resume next. Ved godt det er lidt billigt men..... :-)

Lastrow = [A6].End(xlDown).Row
With [I7]
    .Formula = "=if(isna(VLOOKUP(A7,Dates,2,FALSE)),""Unknown"",VLOOKUP(A7,Dates,2,FALSE))"
    .NumberFormat = "dd/mm/yyyy"
    .Borders.Weight = xlThin
    On Error Resume Next
    .AutoFill Destination:=Range("I7:I" & Lastrow)
    On Error GoTo 0
End With
Avatar billede Peter Praktikant
26. januar 2004 - 21:44 #6
blackadder > Det virkede, tak for hjælpen.
bak > Det var en mulighed, men kan bedre lide blackadders løsning, den er lidt mere elegant.

Hvorfor virker autofill ikke når rangen er en enkelt celle?
Avatar billede bak Forsker
26. januar 2004 - 21:48 #7
Jeg er helt enig. Blackadders er mere elegant (og rigtig).
Autofill virker nok ikke fordi formlen allerede står i den celle, der skal kopieres til.
Avatar billede Slettet bruger
26. januar 2004 - 21:49 #8
Jeg gætter på at når range kun er en række (source = destination) så er udfyldningen
triviel og så gider den ikke udføre metoden.

Sagt på en anden måde, der er vel ingen grund til at udføre autofill i det tilfælde hvor der ikke er nogen celler der ændrer sig.

Hvis du ville bruge autofill, kunne du teste for antallet af berørte rækker og hvis det antal var > 1 så kunne du bruge autofill.

...men det er som sagt kun et gæt :-)
Avatar billede Peter Praktikant
26. januar 2004 - 22:00 #9
ok, jeg lader det ligge som det er nu, det virker jo som det skal og er samtidigt dejligt simpelt.
Tak for hjælpen til jer begge.
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