我的vba代码没有循环,直到我想要的数字。 但如果我把它放在Excel中,并使用求解器,它的工作原理

对于VBA,我写了一些代码来查看这个代码的确切问题。 我想知道是否有人可以通过它检查了我。 它根本不多。 我只是需要E1act和E2act不是负面的,并收敛到一个合理的数字。

Private Sub CommandButton1_Click() Tf = 1023.15 Po = 11.8431 N1 = 1600 R = 1 Kp1 = 10 ^ (-(11769 / Tf) + 13.1927) Kp2 = 10 ^ (-(1197.8 / Tf) - 1.6485) E1act = 1 E2act = 0.1 Z=1 Do E1ini = E1act E2ini = E2act E1act = (((((N1 * (1 + R) + 2 * E1ini) ^ 2) * (N1 - E1ini) * ((N1 * R) - E1ini - E2ini) * Kp1) / (((3 * E1ini + E2ini) ^ 3) * Po ^ 2)) + E2ini) E2act = (Kp2 * (E1ini - E2ini) * ((N1 * R) - E1ini - E2ini)) / ((3 * E1ini) - E2ini) Sheet1.Range("A" & Z) = E1act Sheet1.Range("B" & Z) = E2act Loop Until Abs(E1ini - E1act) <= 0.1 And Abs(E2ini - E2act) <= 0.1 Z=Z+1 End Sub