代码之家  ›  专栏  ›  技术社区  ›  Jacob

使用不同的参数和存储值多次运行模拟

  •  0
  • Jacob  · 技术社区  · 14 年前

    考虑一个基于固定值执行一些计算的电子表格(在下面的示例中, D3 )而且是迭代的。例如。

    D3: 4
    
    B3: 12 
    B4: 58 (=B3*$D$3+10)
    B5: 242 (=B4*$D$3+10)
    B6: 978 (=B5*$D$3+10)
    
    Total = 1290 (=sum(B2:B5))
    

    现在,假设我想尝试不同的价值观 D3号 (我们称之为 P )并存储我得到的不同总数,即。

    P    Total
    4 1290
    5 2252
    6 3618
    7 5460
    

    如何使用Excel完成此操作?宏?请注意,上面的例子是真实事物的简化版本。应该很清楚我需要计算 B3 - B6 所以我可以计算出总数。

    更新:

    每次计算都需要几列。E、 g.我们将使用 B3,B4, .. C3,C4, ... .

    2 回复  |  直到 14 年前
        1
  •  1
  •   Doc Brown    14 年前

    宏可以做到这一点。如果B7包含求和公式,请尝试以下操作

    Sub RunSimulation()
         Dim p as long
         for p = 4 to 7
             Range("D3")=p
             Debug.Print Range("B7")
             Range("L" & (p-1)) = Range("B7").Value
         next
    End Sub
    

    编辑:根据要求添加一行用于存储结果。

    如果不想在工作表中输入总和公式,可以在VBA中计算总和:

    Dim total as Long 
    Dim row as long
    total = 0
    for row = 2 to 5
        total = total + Range("B" & row)
    Next
    Debug.Print total
    

    (使用 Double 而不是 Long 对于 total 如果你在处理浮点数。)

        2
  •  1
  •   Lavir the Whiolet    14 年前

    通常按以下方式进行:

        A     B         C         D
    1   x     tmp1      tmp2      Total
    2   3     $A2+10    $B2*10+10 $C2*$B2   The formulae are just for example.
    3   $A2+1 $A3+10    $B3*10+10 $C3*$B3
    4   $A3+1 $A4+10    $B4*10+10 $C4*$B4
    

    Excel能够自动增加公式中的索引。