Avatar billede pja Nybegynder
06. september 2012 - 13:21 Der er 4 kommentarer

Loop bestemte steder i ark

Hej

Jeg forsøger at lave et loop. Jeg har to sheets (sheet1 og sheet2). i sheet1 står der tal i colonne A og B, tallet i colonne B skal trækkes fra tallet i colonne A. Dette skal angives som en formel i Sheet2 (så udregning/resultat kommer i sheet2). Derudover skal dette kopieres ned igennem 5 rows og hoppe en row over og forsætte igennem hele arket indtil lastrow.

I nedenstående kan i se noget af det jeg har lavet. Her har jeg dog lavet formlen i den første cell i sheet2 og trækker den.  Håber i kan forstå hvad jeg mener.

Sub kopierformler()

Range("d5").Activate

Do Until ActiveCell.Row >= Cells.SpecialCells(xlCellTypeLastCell).Row
Selection.AutoFill Destination:=Range("D5:D8"), Type:=xlFillDefault
Selection.Copy
Range("d8").Activate
ActiveCell.Offset(2, 0).Activate

Loop
End Sub
Avatar billede store-morten Ekspert
06. september 2012 - 20:00 #1
Prøv:
Sub kopierformlerTest()

    Dim iRow As Integer 'Rækken der arbejdes med (sidste række)
    Dim sColum As String 'Kolonnen der arbejdes med (sidste kolonne)
    Dim sColTo As String 'Kolonnen der skrives til
    iRow = 5 'Sæt hvilken række der startes fra
    sColum = "A" 'Sæt hvilken kolonne der skal læses fra (sidste kolonne)
    sColTo = "D" 'Sæt hvilken kolonne der skal skrives til
   
    Do While Range(sColum & iRow).Value <> "" 'Så længe der er data I kolonne "læsekolonnen"
   
        For i = 1 To 5
        Sheets(2).Range(sColTo & iRow).FormulaR1C1 = "='Ark1'!RC[-3]-'Ark1'!RC[-2]" 'Tilpas fane navn (Ark1)
        iRow = iRow + 1
        Next i
   
    iRow = iRow + 1 'Forbered læsning af næste række
    Loop 'Afslut loopet
     
End Sub
Avatar billede store-morten Ekspert
19. september 2012 - 20:13 #2
Kunne det bruges?
Avatar billede pja Nybegynder
21. september 2012 - 11:29 #3
Nej desværre.. undskyld jeg ikke har svaret.
Avatar billede store-morten Ekspert
21. september 2012 - 16:55 #4
Har du tilpasset
Sheets(2).Range(sColTo & iRow).FormulaR1C1 = "='Ark1'!RC[-3]-'Ark1'!RC[-2]" 'Tilpas fane

Ark1: rettes til dit Arknavn

Her under Arknavn = Sheet1
Sub kopierformlerTest()

    Dim iRow As Integer 'Rækken der arbejdes med (sidste række)
    Dim sColum As String 'Kolonnen der arbejdes med (sidste kolonne)
    Dim sColTo As String 'Kolonnen der skrives til
    iRow = 5 'Sæt hvilken række der startes fra
    sColum = "A" 'Sæt hvilken kolonne der skal læses fra (sidste kolonne)
    sColTo = "D" 'Sæt hvilken kolonne der skal skrives til
   
    Do While Range(sColum & iRow).Value <> "" 'Så længe der er data I kolonne "læsekolonnen"
   
        For i = 1 To 5
        Sheets(2).Range(sColTo & iRow).FormulaR1C1 = "='Sheet1'!RC[-3]-'Sheet1'!RC[-2]" 'Tilpas fane navn (Ark1)
        iRow = iRow + 1
        Next i
   
    iRow = iRow + 1 'Forbered læsning af næste række
    Loop 'Afslut loopet
     
End Sub
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
Kurser inden for grundlæggende programmering

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