为函数中的单元格赋值

时间:2012-07-21 20:00:18

标签: excel excel-vba vba

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

1 个答案:

答案 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