我正在编写一个代码,其中一行( Range(“H5”)。value = 10 )应该为特定单元格指定特定值。但它给了我一个#VALUE!我的手机上的错误。这是我的代码请帮助!!:
Function TotalAdUnits(Money As Currency, CycleEarning As Integer) As Integer
TapCost = 16
TotalAdUnits = 0
AdUnit = 0
i = 1
Money = Money + CycleEarning
Do While (Money >= TapCost)
Money = Money - TapCost
TotalAdUnits = TotalAdUnits + Range("L1").Offset(i, 0)
TapCost = Range("J2").Offset(i, 0)
Range("H5").value = 10
i = i + 1
Loop
End Function
答案 0 :(得分:1)
您无法从UDF设置单元格值 - 以这种方式使用的函数只能将值返回给调用单元格(或者如果它用作数组函数,则为范围)。编辑函数以返回值,而不是尝试直接设置它。
话虽如此,我还不清楚你正在尝试用这个功能做什么。为什么在循环中设置相同的值?
此外,如果直接从函数引用范围,并且这些范围不作为参数传递,则需要包括
Application.Volatile
在你的功能中,所以Excel知道在工作表更改时重新计算它。
Function TotalAdUnits(Money As Currency, CycleEarning As Integer) As Integer
TapCost = 16
TotalAdUnits = 0
AdUnit = 0
i = 1
Money = Money + CycleEarning
Do While (Money >= TapCost)
Money = Money - TapCost
TotalAdUnits = TotalAdUnits + Range("L1").Offset(i, 0)
TapCost = Range("J2").Offset(i, 0)
Range("H5").value = 10
i = i + 1
Loop
'need to return a value...
TotalAdUnits = 10 '?
End Function