我需要从一个单元格中获取变量x,并在相邻单元格中获得1*x+2*x...+5*x
的总和。
我的尝试:
Public Function uzd1(x)
Dim a, c, b As Integer
b = 0
For a = 1 To 5
c = a * x
b = b + c
Next
uzd1 = b
End Function
然后我在答案单元格中键入“= uzd1(B1)”,但我只得到“#REF!”而不是我需要的摘要。
答案 0 :(得分:4)
uzd1
是一个单元格地址,这就是你得到#Ref错误的原因。
将函数名称更改为其他内容,例如TestCalc
,它将起作用。
答案 1 :(得分:3)
由于您要向函数发送数字引用,因此需要将`x As Integer(或'Long')定义为更高的值。
其次,我遇到了 uzd1 的问题(可能是Excel中的“已保存”字样),因此我将其修改为 uzd 。
第三,由于您希望得到总和,因此请定义函数以返回Integer
(或Long
以获取更高的值。)
修改后的UDF代码
Function uzd(x As Integer) As Integer
Dim a As Integer, b As Integer
For a = 1 To 5
b = b + a * x
Next a
uzd = b
End Function
答案 2 :(得分:0)
根据你的循环,除了将x乘以1到5之外,你什么也不做,这就是15 * x。因此,不需要循环或用户定义的函数