I'm not sure I follow you. FO503 is a variable in the equations that determine the values of dbLauter and dbSparge. I can enter values manually for FO503 and make dbLauter = dbSparge, but the loop can't seem to do it.
That is the source of your confusion. A VBA double variable is not like an Excel cell containing a formula which will continually change its value as its source changes values. If that is the way you want it to act, you need to use a Range variable, and not a double, or the cell location itself. A Range can refer to one or more cells on a worksheet. A double, on the other hand, is just a container for a floating point number. The value of dbLauter & dbSparge will only change if you place it to the left of an equal sign: such as, dbLauter = dbLauter + .001 (or whatever).
I don't claim to understand the logic of your program, but I got the following to work. By work, I mean I got the program to start, and then the values of Z35 & Z37 equalized. I got it to work both with and without using Round.
Since most of the references to cells (aka Range("")) was to Sheet11, I used a With Sheet11 statement. Thus every "Range", with a dot (period) before it and nothing else before it, refers to Sheet11.
Bookmarks