考虑一个电子表格,它根据固定值执行一些计算(在下面的示例中为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, ...
上的值。
答案 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具有自动增加公式中索引的功能。