Range in WorksheetFunction

Status
Niet open voor verdere reacties.

Scripter

Gebruiker
Lid geworden
15 jun 2009
Berichten
65
In onderstaande code (als in de bijlage) moet achter elke regel in kolom C de uitkomst van de som in kolom A + B worden geplaatst. Dus in in cel C2 de uitkomst van A2 + B2, in cel C3 de uitkomst van A3 + B3 etc.
Met mijn huidige code krijg ik (uiteraard) overal de uitkomst van A2 + B2. Is dit (simpel) op te lossen, of kan ik hier de Worksheet.Function niet voor gebruiken?
Valt me trouwens ook op, dat hij ontzettend langzaam is op deze manier.

Bekijk bijlage test1.xls

Code:
Sub uitkomstTest()
Application.ScreenUpdating = False
  
  Dim wbk As Workbook
  Dim rngCell As Range, rngNumbers As Range
  Dim i As Integer

  Set wbk = ActiveWorkbook
  Set rngCell = wbk.Worksheets(1).Range("C1")

  For i = 1 To 10
    rngCell.Offset(i).Value = WorksheetFunction.Sum(Range("A2:B2"))
  Next

Application.ScreenUpdating = True
End Sub
 
Code:
Sub hsv()
For Each cl In Range("A2:A11")
 cl.Offset(, 2) = cl * cl.Offset(, 1)
 Next cl
End Sub
 
Dank voor de snelle reactie HSV.
Heb voor de snelheid nog wel screenupdating en calculating uitgezet. Voorbeeld gaat om 10 regels, werkelijk bestand over 30.000+

Maar betekend dit dat ik de Worksheet.Function niet kan gebruiken in dit soort situaties?
 
Code:
Sub hsv()
For Each cl In Range("A2:A11")
 cl.Offset(, 2) = WorksheetFunction.Sum(Range(Cells(cl.Row, 1), Cells(cl.Row, 2)))
 Next cl
End Sub

Of korter, voor eenmalig uitvoering.
Code:
Sub hsv()
For Each cl In Range("A2:A11")
 cl.Offset(, 2) = WorksheetFunction.Sum(Rows(cl.Row))
 Next cl
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan