You are welcome
Thanks for feedback and rep 
I'm using the Evolutionary method in Solver so I suspect that means I'm running it in a loop?
Well not necessarily. Solver has 3 different “engines” to solve problems.
If the problem is a linear one the best method to solve problems like that is using the “Simplex LP”
If the problem is a curved smooth line then the “GRG Nonlinear” engine can solve the problem
And finally if the curve is non smooth then the “Evolutionary” engine may solve your problem. So in order to get the best solution one should try to use the appropriate solver engine for the kind of problem you wish to solve.
One can always start using the "Simplex LP" and if the problem is not linear solver will tell you so. After that test "GRG Nonlinear" and if this don't work then time to test the "Evolutionary"
All these engines can be run from the data tab without any VBA. If you do have a problem where you wish to check a number of lines/ranges then you can use a macro.
In the code snippet above solver shall check 98 rows by finding the Z2 max value by changing cells in range N2:O2 so r goes from 2 to 100 and in the second loop r = 3
so Z3 is to be maxed by changing range N3:O3 and so forth.
Sorry I got carried away 
Alf
Bookmarks