VivianeVT93
Nieuwe gebruiker
- Lid geworden
- 7 jun 2017
- Berichten
- 1
Hallo,
Ik ben pas net begonnen met programmeren in VBA en snap niet zo goed waarom het onderstaande mis gaat.
Ik wil in de onderstaande code uiteindelijk een FOR loop laten lopen over de waardes st1 en et1. Hierom wil ik dus dat ik deze variabele kan gebruiken om de range van de LINEST functie te bepalen. Bij de bovenste LINEST functie doet hij wat hij moet doen (hij neem de range Y=B6:B57 en X=A6:A57) en geeft de juiste waardes als output. Maar zodra ik de rijen wil meegeven via st1 en et1 geeft hij als output alleen maar #NAME. De onderste drie manieren lijken mij allemaal te moeten werken, maar geven allemaal geen output.
Ik ben pas net begonnen met programmeren in VBA en snap niet zo goed waarom het onderstaande mis gaat.
Ik wil in de onderstaande code uiteindelijk een FOR loop laten lopen over de waardes st1 en et1. Hierom wil ik dus dat ik deze variabele kan gebruiken om de range van de LINEST functie te bepalen. Bij de bovenste LINEST functie doet hij wat hij moet doen (hij neem de range Y=B6:B57 en X=A6:A57) en geeft de juiste waardes als output. Maar zodra ik de rijen wil meegeven via st1 en et1 geeft hij als output alleen maar #NAME. De onderste drie manieren lijken mij allemaal te moeten werken, maar geven allemaal geen output.
Code:
Private Sub CommandButton1_Click()
Dim st1 As Long 'Start of trend 1
Dim et1 As Long 'End of trend 1
Dim rY As Range
Dim rX As Range
st1 = 1 'To be given by the for loop
et1 = 52 'To be given by the for loop
Set rX = Range("A" & (stl + 6) & ":A" & (et1 + 5))
Set rY = Range("B" & (stl + 6) & ":B" & (et1 + 5))
Range("H6:I10").Select
Selection.clearcontents
ActiveCell.FormulaR1C1 = "=LINEST(rY,rX,TRUE,TRUE)"
Range("H6:I10").Select
Selection.FormulaArray = "=LINEST(INDIRECT(""B""&6&"":B""&57),INDIRECT(""A""&6&"":A""&57),TRUE,TRUE)"
'Selection.FormulaArray = "=LINEST(INDIRECT(""B""&(st1+6)&"":B""&(et1+5)),INDIRECT(""A""&(st1+6)&"":A""&(et1+5)),TRUE,TRUE)"
'Selection.FormulaArray = "=LINEST(rY,rX,TRUE,TRUE)"
'Selection.FormulaArray = "=LINEST(INDIRECT(rY),INDIRECT(rX),TRUE,TRUE)"
End Sub