0

我正在编写一个代码,其中一行( 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
4

1 回答 1

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
于 2012-07-21T23:06:49.383 回答