I've attempted to develop a macro that creates new workbooks for every iteration a sheet can have based on a dynamic number of inputs, found below. When running the program, the first time I try to update a formula I receive the error "Application-Defined or Object-Defined Error". I'm guessing this has something to do with my global variables? I'm new to vba so any help would be appreciated!
Sub create_jvs()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim achWS, refWS As Worksheet
Dim j, fRow, lRow As Integer
Set refWS = wb.Sheets("References")
Set achWS = wb.Sheets("ACHLinkage")
'get first and last row of constraint range in ACHLinkage
fRow = 2
lRow = achWS.Columns("AB").Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows, LookIn:=xlValues).Row
'loop to produce separate jvs
For j = -29 To (-29 + (lRow - fRow)) Step 1
refWS.Range("R31").Select 'select the first reference cell
'update formula 1
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[j]C[10] = """", """", IF(ACHLinkage!R[j]C[10]=""N"",ROUNDDOWN(References!R30C19*ACHLinkage!R[j]C[11],2),ROUNDUP(References!R30C19*ACHLinkage!R[j]C[11],2)))"
ActiveCell.Offset(1).Select
'update formula 2
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[j-1]C[10] = """", """", IF(ACHLinkage!R[j-1]C[10] = ""N"", ROUNDDOWN(References!R28C19*ACHLinkage!R[j-1]C[11],2), ROUNDUP(References!R28C19*ACHLinkage!R[j-1]C[11],2)))"
ActiveCell.Offset(1).Select
'update formula 3
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[j-2]C[10] = """", """", IF(ACHLinkage!R[j-2]C[10]=""N"",ROUNDDOWN(USERFORM!R26C6*ACHLinkage!R[j-2]C[11],2),ROUNDUP(USERFORM!R26C6*ACHLinkage!R[j-2]C[11],2)))"
ActiveCell.Offset(1).Select
'update formula 4
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[j-3]C[10] = """", """", IF(ACHLinkage!R[j-3]C[10]=""N"",ROUNDDOWN(USERFORM!R26C7*ACHLinkage!R[j-3]C[11],2),ROUNDUP(USERFORM!R26C7*ACHLinkage!R[j-3]C[11],2)))"
ActiveCell.Offset(1).Select
'update formula 5
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[j-4]C[10] = """", """", IF(ACHLinkage!R[j-4]C[10]=""N"",ROUNDDOWN(USERFORM!R26C8*ACHLinkage!R[j-4]C[11],2),ROUNDUP(USERFORM!R26C8*ACHLinkage!R[j-4]C[11],2)))"
ThisWorkbook.Sheets("ACH JV").Copy 'copy jvWS to new wb
Next j
'reset parameters to starting row
refWS.Range("R31").Select
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[-29]C[10] = """", """", IF(ACHLinkage!R[-29]C[10]=""N"",ROUNDDOWN(References!R30C19*ACHLinkage!R[-29]C[11],2),ROUNDUP(References!R30C19*ACHLinkage!R[-29]C[11],2)))"
ActiveCell.Offset(1).Select
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[-30]C[10] = """", """", IF(ACHLinkage!R[-30]C[10] = ""N"", ROUNDDOWN(References!R28C19*ACHLinkage!R[-30]C[11],2), ROUNDUP(References!R28C19*ACHLinkage!R[-30]C[11],2)))"
ActiveCell.Offset(1).Select
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[-31]C[10] = """", """", IF(ACHLinkage!R[-31]C[10]=""N"",ROUNDDOWN(USERFORM!R26C6*ACHLinkage!R[-31]C[11],2),ROUNDUP(USERFORM!R26C6*ACHLinkage!R[-31]C[11],2)))"
ActiveCell.Offset(1).Select
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[-32]C[10] = """", """", IF(ACHLinkage!R[-32]C[10]=""N"",ROUNDDOWN(USERFORM!R26C7*ACHLinkage!R[-32]C[11],2),ROUNDUP(USERFORM!R26C7*ACHLinkage!R[-32]C[11],2)))"
ActiveCell.Offset(1).Select
ActiveCell.FormulaR1C1 = "=IF(ACHLinkage!R[-33]C[10] = """", """", IF(ACHLinkage!R[-33]C[10]=""N"",ROUNDDOWN(USERFORM!R26C8*ACHLinkage!R[-33]C[11],2),ROUNDUP(USERFORM!R26C8*ACHLinkage!R[-33]C[11],2)))"
End Sub