2
私はVBAで、次の機能があります。#VALUE!名前付き範囲でVBA機能上の誤り、VLOOKUP
Function weightedAverage(x0, y0, x1, y1, x)
weightedAverage = y0 + (x - x0) * (y1 - y0)/(x1 - x0)
End Function
Function interpolateLookup(lookupVal As Range, lookupRange As Range, colID As Integer) As Double
step = 0.01
x0 = Application.Round(lookupVal.Value, 3)
y0 = Application.VLookup(x0, lookupRange, colID, True)
x1 = Application.Round(lookupVal.Value, 3) + step
y1 = Application.VLookup(x1, lookupRange, colID, False)
x = lookupVal.Value
interpolateLookup = weightedAverage(x0, y0, x1, y1, x)
End Function
ここでの問題は、私のinterpolateLookup関数が#VALUEを返すということです!次の入力を渡すとエラーが発生します。
=interpolateLookup(E5,K3:O803,5)
なぜですか?
コードをステップしましたか?私の最初の考えは 'y0'か' y1'のどちらかがエラー値を返すことです。 – Rory
yep ... y1が値のエラーを返しています... –
あなたはそれについて**正確な**試合を探すことを意味しましたか? – Rory