簡體   English   中英

Excel 中 VBA 的新功能。 試圖對遞增的 function 求和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM