更新外循环的值,For循环中的另一个For循环

时间:2014-01-27 20:31:43

标签: excel vba excel-vba

我的问题:我想使用内环(i)的最后计算值作为外环(j)。但是当(j = 2且i = 1)时,它开始采用错误的值。我可能有错的地方? 我没有显示任何输入,只需要帮助理解外部循环。

For j = 1 To 4

 wf = (2 * j - 1) * wff

    For i = 1 To 3                        

      PZ = (1 - GP / GT) * pzi                  
      p = fPpz(PZ, ppc, Tpr)                   
      z = p / PZ                               

      pavg = (p + pwf) / 2
      Bg_p = Bg(z, T, p, psc, Tsc)
      mug_p = (mugas(SGg, p, T)) / 1000
      mug_pavg = (mugas(SGg, pavg, T)) / 1000
      Z_pavg = fZ(pavg / ppc, Tpr)
      Bg_pavg = Bg(Z_pavg, T, pavg, psc, Tsc)


      Time2 = 1 + Time1
      delTime = Time2 - Time1

      PIndex = PIndn(kres, hres, mug_pavg, Bg_pavg, JDf)

      dpdlf = pf(p, pwf, xf, PIndex, tauyhb, nhb, khb, wfg_new, Hf, wf, Bg_pavg, dpdlold,mug_pavg, Bg_p, mug_p)

      dpdlnew = dpdlf


      If dpdlf < 0 Then
      dpdlnew = dpdlold
      End If


      qg = FrGasF(tauyhb, nhb, khb, wfg_new, Hf, wf, dpdlnew, mug_p)                             
      GP = 2 * qg * delTime * 60 / Bg_p + GP                                             
      qhb = FrHBF(tauyhb, nhb, khb, wfg_new, Hf, wf, dpdlnew)                                     
      wfg_old = qhb / xf / Hf * delTime * 60 / 2                                            

      '=======For next iteration (i+1)======='

      wfg_new = wfg_new + wfg_old
      Time1 = Time2
      dpdlold = dpdlnew
    Next i
Next j

1 个答案:

答案 0 :(得分:1)

您应该在外wfg_new = 0循环中设置j吗?否则,j = 2,i = 1使用j = 1的wfg_new值,当你调用pf函数时i = 3