I stepped through the code. It executes Through the SolverSolve statement before I get the error.
Google "excel vba solversolve" without quotes, and you will find https://docs.microsoft.com/en-us/office/vba/excel/concepts/functions/solversolve-function. It explains:
``SolverSolve( UserFinish, ShowRef)
UserFinish Optional Variant. True to return the results without displaying the Solver Results dialog box.
False or omitted to return the results and display the Solver Results dialog box.
ShowRef Optional Variant. You can pass the name of a macro (as a string) as the ShowRef argument.``
So the runtime error arises because you pass False to ShowRef. I suspect you intended to pass False to UserFinish. Note that you wrote ``SolverSolve
comma False``. Presumably, you want to write ``SolverSolve False`` (no comma) or simply SolverSolve (default UserFinish).
The thing that changes is the values in $A$2:$A$134
I don't believe so, not in the code as written thus far. Perhaps it's a work-in-progress. But as written, nothing happens in the loop other than set up Solver constraints. So I see no reason to expect that the values of A2:A134 change.
Again, I suspect that you want SolverSolve to be inside the loop, if you expect that the operation of Solver causes the values of A2:A134 to change.
That said, forgive me if I'm speaking out-of-school. You really have not told us much about what the loop should accomplish, so I really don't know what I'm talking about.
PS.... Frankly, I don't want to know what the loop should accomplish. That is, I do not want to help you design your code. I'm happy to answer usage questions, like the ones that you have asked. I only need to know design details to the extent that it might help answer your usage questions. So I probably should not offered an opinion about the loop design. Mea culpa!