0

行の1つ( 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 に答える