[英]New to VBA in Excel. Trying to sum an incremented function
所以我想做的是取兩個值(x)和(y)之間的差來得到(n)。 然后我想通過公式 (n) 運行 (x) 次,每次遞增 (x)。 然后我想 output 將所有這些結果的總和放入一個單元格中。 無法弄清楚如何像平常一樣在一個單元格內整齊地完成它,所以我曾經轉向 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 之間。 我認為肯定會起作用的唯一方法是混亂的,我將在一列中留出大量單元格,這些單元格將單獨計算每個迭代,然后將所有這些加在一起。
或者,如果有一種方法可以編寫一個 function 可以計算 ((x+n)^2)*100/3 的 sum(n),那會更好,但我想不出它會如何寫。
以下是如何使 function(可直接在工作表公式中使用)形成總和:
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
這個 function 評估:
100/3 * (x^2 + (x+1)^2 + (x+2)^2 + ... + (x+(n-1))^2)
目前尚不完全清楚這是否是您想要做的。 如果沒有,您可以調整代碼以滿足您的需求。
小點:我使用Long
而不是Integer
。 忘記Integer
存在。 它確實是從有限的 memory 和 16 位計算機時代遺留下來的。 在現代 Excel 中, Integer
無論如何都以 32 位存儲。 您只是無緣無故地冒着溢出的風險。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.