Excel 趋势线方程评估变量值未在循环中更新

Excel 趋势线方程评估变量值未在循环中更新,excel,vba,Excel,Vba,我正在写一个程序,它将取两条交叉的趋势线,并不断评估它们,直到找到一个可以接受的接近交叉点的点 我已经得到了趋势线,按照我喜欢的格式,我用一个变量(数组的一列)替换了x。当我开始我的循环时,有100个输入,其中最低的将是我的“点”,变量不会更新到新的值或步骤,然后再计算趋势线方程 以下是我的代码的相关部分,其中tl1eq和tl2eq是我的趋势线方程字符串: tl1eq = Replace(tl1eq, "y =", "") tl1eq = Replace(tl1eq, "x2", "x^2")

我正在写一个程序,它将取两条交叉的趋势线,并不断评估它们,直到找到一个可以接受的接近交叉点的点

我已经得到了趋势线,按照我喜欢的格式,我用一个变量(数组的一列)替换了x。当我开始我的循环时,有100个输入,其中最低的将是我的“点”,变量不会更新到新的值或步骤,然后再计算趋势线方程

以下是我的代码的相关部分,其中tl1eq和tl2eq是我的趋势线方程字符串:

tl1eq = Replace(tl1eq, "y =", "")
tl1eq = Replace(tl1eq, "x2", "x^2")
tl1eq = Replace(tl1eq, "x", " * " & flhd(i, 1) & " ")

tl2eq = Replace(tl2eq, "y =", "")
tl2eq = Replace(tl2eq, "x6", "x^6")
tl2eq = Replace(tl2eq, "x5", "x^5")
tl2eq = Replace(tl2eq, "x4", "x^4")
tl2eq = Replace(tl2eq, "x3", "x^3")
tl2eq = Replace(tl2eq, "x2", "x^2")
tl2eq = Replace(tl2eq, "x", " * " & flhd(i, 1) & " ")

'create an step amount between low and high flows, with 100 steps
x = (hflow - lflow) / 100

'fill array with step values and summation of curve equations
For i = 1 To 100
    flhd(i, 1) = lflow + (x * i)
    flhd(i, 2) = Abs(Evaluate(tl1eq) - Evaluate(tl2eq))
    MsgBox (flhd(i, 1) & " " & tl1eq & " " & Evaluate(tl1eq) & " " & tl2eq & " " & Evaluate(tl2eq))
Next i
flhd(i,1)在计算时不会在字符串中更新,但在msgbox中显示为正确的值


任何帮助都将不胜感激。

您需要在循环中替换
x
。现在你要对同样的两个方程求值100次。显示
tl1eq
tl2eq
的原始值,并为
hflow
lflow
提供样本输入,这将有助于您的问题。如果我在循环中替换x,当x已经被替换时,第二个循环上不会出现错误吗?tl1eq和tl2eq是动态的,但定义为ax2+bx+c和dx6+ex5…,仅二阶和六阶多项式样本输入是任意两个数字,其中lflow是一个较低的数字,hflow是一个较高的数字。用户应该解释图表并提供趋势线交叉的两个数字。如果没有具体的例子,很难进行测试-我会自己尝试修复,但不想浪费时间计算样本方程和值。至于第二个循环-你不应该只在循环中移动这两行:再创建两个字符串,它们可以保存由x个替换产生的修改后的方程:不要在
x2
替换步骤之外修改tl1eq和tl2eq。啊,尝试了几次,但成功了。非常感谢!您需要在循环中替换
x
。现在你要对同样的两个方程求值100次。显示
tl1eq
tl2eq
的原始值,并为
hflow
lflow
提供样本输入,这将有助于您的问题。如果我在循环中替换x,当x已经被替换时,第二个循环上不会出现错误吗?tl1eq和tl2eq是动态的,但定义为ax2+bx+c和dx6+ex5…,仅二阶和六阶多项式样本输入是任意两个数字,其中lflow是一个较低的数字,hflow是一个较高的数字。用户应该解释图表并提供趋势线交叉的两个数字。如果没有具体的例子,很难进行测试-我会自己尝试修复,但不想浪费时间计算样本方程和值。至于第二个循环-你不应该只在循环中移动这两行:再创建两个字符串,它们可以保存由x个替换产生的修改后的方程:不要在
x2
替换步骤之外修改tl1eq和tl2eq。啊,尝试了几次,但成功了。非常感谢!