I've managed to solve this using 2 For Next Loops instead. Here's the code if anyone else finds it of any use (as I have done to the solutions of many other threads). The basic principle is to loop a series of functions that are already looped. One use of this is for Monte Carlo type procedures where you loop a series of calculations to emulate a market phase. All calculations for the market are done per row, and this is repeated for each row using the inner calcLoop. This then needs to be queried a large number of times to test the rigidity of the market.
Option Explicit
Sub multiple_calc()
Dim theCell As Range
Dim outerLoop As Integer
Dim Row As Long
Dim calcLoop As Integer
For outerLoop = 1 To 100000
For calcLoop = 1 To 5
Row = Row + 1
Set theCell = Sheets("Sheet1").Cells(Row + 1, "G")
With theCell
.FormulaR1C1 = theCell.Value + 5
.Calculate
.Offset(0, 1).FormulaR1C1 = theCell.Value + 3
.Calculate
.Offset(0, 2).FormulaR1C1 = theCell.Value + 1
.Calculate
End With
Next calcLoop
Row = 0
Next outerLoop
End Sub
Bookmarks