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

时间:2010-11-14 14:58:11

标签: excel

考虑一个电子表格,它根据固定值执行一些计算(在下面的示例中为D3),并且是迭代的。 E.g。

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,以便我可以计算总和。

更新

每次计算都需要几列。例如。我们会使用B3,B4, ..C3,C4, ...上的值。

2 个答案:

答案 0 :(得分:1)

宏可以做到这一点。如果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。)

答案 1 :(得分:1)

通常以下列方式完成:

    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具有自动增加公式中索引的功能。