Avatar billede micaud Mester
21. marts 2007 - 10:59 Der er 6 kommentarer og
1 løsning

Hvordan bruges autofill i et random range

Hej.

Jeg har en pivot tabel med nogle ekstra kolonner med beregninger ved siden af.

Jeg vil gerne kunne bruge funktionen filldown, således min beregningskolonner (H:I) lige til venstre for pivottabellen tilpasses, så kolonnerne med beregningerne har lige mange rækker som pivottabellen.

Det virker på denne måde, men er håbløs langsomt:

    Application.ScreenUpdating = False
    Range("h8:I10000").ClearContents
    T = Range("L6").Value
    Range("H7:I7").Select
    For i = 1 To T
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.FillDown
    ActiveCells.Offset(0, 1).Range("A1").Select
    Selection.FillDown
    ActiveCells.Offset(0, -1).Range("A1").Select
    Next
    Application.ScreenUpdating = true

Jeg har leget lidt med følgende, men det virker ikke:

    Set SourceRange = Range("I7")
    Set fillrange = Range(Cells(8, 9), Cells(10, 9)).Select
    SourceRange.AutoFill Destination:=fillrange

Denne kode skulle tage celle I7 og autofill celle I8-I9.

Den perfekte løsning for mig vil være, at celle H7:I7 copieres nedaf det antal gange som en formel i celle L6 giver. Det svare til min variabel "T" i første makrokode.

Håber I kan hjælpe, for jeg har masser af regneark, hvor jeg ville kunne bruge det.
Avatar billede kabbak Professor
21. marts 2007 - 11:15 #1
prøv denne, jeg ved ikke om det er korrekt forstået.

ActiveCell.Row + Range("A1") sætter antal af rækker der skal autofill under active cell.


Application.ScreenUpdating = False
    Range("h8:I10000").ClearContents
    T = Range("L6").Value
    Range("H7:I7").Select
    For i = 1 To T
    Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(ActiveCell.Row + Range("A1"), 1)).Select
    Selection.FillDown
 
    Next
    Application.ScreenUpdating = True
Avatar billede kabbak Professor
21. marts 2007 - 11:21 #2
Nyt forsøg:

Den sætter ind under H7:I7

Application.ScreenUpdating = False
    Range("h8:I10000").ClearContents
    t = Range("L6").Value
    Range("H7:I7").Select
    Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(t, 1)).Select
    Selection.FillDown
    Application.ScreenUpdating = True
Avatar billede micaud Mester
21. marts 2007 - 11:44 #3
Endnu engang mange tak.

Det fungere perfekt og er hurtigt.

Send et svar.
Avatar billede micaud Mester
21. marts 2007 - 11:46 #4
Har du en fornuftig løsning på range("h8:I10000").ClearContents??

Det skal jo blot være til slutningen af den sidste autofill. Det virker så amatøragtigt, at definere fra 8-10000
Avatar billede kabbak Professor
21. marts 2007 - 11:56 #5
Range("H8:H" & Range("H65536").End(xlUp).Row).ClearContents
Avatar billede kabbak Professor
21. marts 2007 - 11:56 #6
Skulle være:

Range("H8:I" & Range("H65536").End(xlUp).Row).ClearContents
Avatar billede micaud Mester
21. marts 2007 - 12:59 #7
Takker mange gange
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