Excel中的VBA新手。试图对一个增量函数进行求和

问题描述 投票:0回答:1

所以我想做的是取两个值(x)和(y)之间的差值,得到(n)。然后我想通过公式(n)来运行(x),每次递增(x)。然后我想把所有这些结果的总和输出到一个单元格中。我不知道如何在一个单元格中整齐地输出结果,所以我用了一次VBA。

这是我目前的成果。

Sub Math()
'
'Math
'

Dim i As Integer
i = 0
Do While i < ((E42) - (d42))
cell(h42).Value = ((((d42) + i) ^ 2) * 100) / 3


End Sub

我被卡住的是如何得到每个循环的结果 并把它们加在一起。我希望有一个i值,范围在1-100之间。我唯一能想到的方法是,我将有大量的单元格在一列预留,将计算每一个单独的迭代,然后把所有这些加在一起。

另外,如果有办法写一个函数,可以计算((x+n)^2)*1003的sum(n),那就更好了,但我想不出该怎么写。

excel excel-vba math excel-formula
1个回答
3
投票

下面是如何做一个函数(可以直接在工作表公式中使用)来形成一个和。

Function eval_sum(n As Long, x As Double) As Double
    Dim s As Double, i As Long
    For i = 0 To n - 1
        s = s + (x + i) ^ 2 
    Next i
    eval_sum = s * 100 / 3
End Function

这个函数评估:

100/3 * (x^2 + (x+1)^2 + (x+2)^2 + ... + (x+(n-1))^2)

我不太清楚你是否想这样做。如果不是,你可以根据自己的需要调整代码。

小问题:我用了 Long 而非 Integer. 算了吧 Integer 存在。这其实是有限内存和16位计算机时代的遗留问题。在现代Excel中,一个 Integer 反正是用32位存储的。你只是无端地冒着溢出的风险。

© www.soinside.com 2019 - 2024. All rights reserved.