I need to insert a formula using VBA into a cell but I always get a run-time error 1004. Code looks like this:
Sub save_data()
Dim source As Worksheet
Dim list As Worksheet
Dim nextRow As Integer
Dim nextId As Integer
Dim startDate As Date, endDate As Date, randDatum As Date, dateOfBirth As Date
startDate = "17/6/2018"
randDate = WorksheetFunction.RandBetween(startDate, Date)
Set source = Worksheets("Add user")
Set list = Worksheets("Users")
nextRow = list.Range("A" & list.Rows.Count).End(xlUp).Offset(1).Row
nextId = list.Range("A" & list.Rows.Count).End(xlUp).Value + 1
dateOfBirth = source.Range("F24").Value
list.Cells(nextRow, 1).Value = nextId
list.Cells(nextRow, 2).Value = source.Range("F4").Value
list.Cells(nextRow, 3).Value = source.Range("F6").Value
list.Cells(nextRow, 4).Value = source.Range("F8").Value
list.Cells(nextRow, 5).Value = source.Range("F10").Value
list.Cells(nextRow, 6).Value = source.Range("F12").Value
list.Cells(nextRow, 7).Value = source.Range("F14").Value
list.Cells(nextRow, 8).Value = source.Range("F16").Value
list.Cells(nextRow, 9).Value = source.Range("F18").Value
list.Cells(nextRow, 10).Value = source.Range("F20").Value
list.Cells(nextRow, 11).Value = source.Range("F22").Value
list.Cells(nextRow, 12).Value = source.Range("F24").Value
list.Range("M" & nextRow).Formula = "=ROUNDDOWN(YEARFRAC(" & dateOfBirth & ",TODAY(),1),0)"
list.Cells(nextRow, 14).Value = Date
list.Cells(nextRow, 15).Value = randDate
list.Cells(nextRow, 16).Value = Date - randDate
list.Cells(nextRow, 16).Value = "=TODAY()"
End Sub
I have tried Formula and FormulaLocal but result is always the same.
dateOfBirthvariable when you break the code at this line? What is the "result" that is "always the same"? An error? Unexpected answer? Something else?sourceandlistcorrecly?nextrowis populated with a value <1 or >1,048,576. Can only guess with this partial code