私の問題は説明が難しいので、私は画像を追加し、私のGoogleドライブ経由でサンプルのExcelファイルを共有しました。(VBA)カスタム関数が間違った入力でリフレッシュされますか?
機能の実行行Wのアイテムの合計価格と、ロー "Q"の合計価格の中の輸送費のパーセンテージ(いくつかの他のパーセンテージ行は異なるコスト項目に存在します。簡素化する)。 ここでは、個々のアイテム合計を合計します。
次に、行「Q」のすべてのパーセンテージに適用します。これにより、コストの合計がわかります。次に、行Wで除外して合計のコストパーセンテージを得ることができます。 私の例のファイルでは、すべてのサブパーセンテージは同じですが、異なる場合もあります。
以下の機能を持つ2枚のシートがあるときに発生する問題が発生します。何らかの理由で、機能が1つのシート上で更新され(そして正しい値を示す場合)、他のシート上の機能は混乱する。私が手動で更新したとき(「プレス入力」)、正しい値が表示されますが、前のシートに戻ると、その機能がそこそこに詰まっています...私は狂っています:( 私は、各シートの「Q」を参照して第三のシートを持っている場合と、私は1つが常に間違っている、それは同時に両方のシートの正しい値を表示するために取得することはできません。
Option Explicit
Dim rCell As Range
Function SUMSubCost(rRange As Range) As Double
Application.Volatile
Dim Total
For Each rCell In rRange
If (Not IsEmpty(rCell)) And (Not IsError(rCell)) Then
Total = Total + (rCell.Value * Range("W" & rCell.Row).Value)
Else
End If
Next rCell
SUMSubCost = Total
End Function
ダンそれは、私はそれがActiveSheetを参照してください知っていたが、私は機能がそうでなければ、このような方法で呼び出すことができることを知りませんでした。ありがとう!! – Michu1