Thank you Johan but your proposal won't work as it is because (i) the
variables Ca, Cb, Va, Ka, Kb and Kw have not been specified (trivial to
fix), (ii) VbCalc has not been specified and I am not sure what you
intend it to be and (iii) even if I specify a value for VbCalc the line
WHILE needs
You can do it with binaray intersect.
Vb = 10
HLow:= 0
HHigh=1
H=(HHigh + HLow) / 2
WHILE Abs(VbCalc = Vb - Va*[(Ca/(1 + H/Ka) - H + Kw/H)/(Cb/(1 + Kw⁄
(H*Kb)) + H - Kw/H)]) > 0.0005
IF VbCalc < Vb
HLow=H
ELSE
HHigh=H
ENDIF
H=(HHigh + HLow) / 2
ENDDO
HTH
Johan Nel
South
Thanks Alan
I could certainly do that and I already have a workbook set up but I
would prefer a non-automation method if possible.
Paul
On 14/12/2022 09:10, Alan Bourke wrote:
Thinking aloud, if you could guarantee 32-bit Excel was available you could
probably use Excel automation to do
> Thinking aloud, if you could guarantee 32-bit Excel was available you could
> probably use Excel automation to do it, i.e.
Actually, for Office automation it doesn't matter whether it's 32-bit or
64-bit, as long as it is installed on the machine. 32-bit is only relevant for
DLLs or drivers.
Thinking aloud, if you could guarantee 32-bit Excel was available you could
probably use Excel automation to do it, i.e.
Create a Workbook programmatically
Fill defined cells with your input values
Do a Goal Seek with result in a defined cell
Read that value back to VFP.
I have the following equation
Vb = Va*[(Ca/(1 + H/Ka) - H + Kw/H)/(Cb/(1 + Kw⁄ (H*Kb)) + H - Kw/H)]
Va, Ca, Ka, Cb, Kb and Kw are known or can be provided for any given
"run" of the calculation. Typical values might be
Va = 10, Ca = 0.1, Ka = 1.8E-5, Cb = 0.1, Kb = 0.63, Kw = 1.0E-14
The
6 matches
Mail list logo