私はそれにvlookupを持つ関数を持っています。 ルックアップ値がターゲット配列内にある場合、vlookupが機能します。 ルックアップ値がターゲット配列にない場合は、0を返す必要があります。 現在、配列にないルックアップ値を使って関数を実行すると、関数は誤って終了します。メッセージはありません。 ここに私のコードです。Excel VBA Application.iferror()がエラーを処理していません
Function myPrice(myPart As String, myVol As Integer)
Application.Volatile
Dim myCol As Integer
Dim myCavity As Integer
Dim myCycleTime As Integer
Dim wb As Workbook
Dim ws As Worksheet
Dim myVal As Double
Set wb = Workbooks("AdvancedQuote.xlsm")
Set ws = wb.Worksheets("Sheet1")
With ws
myVal = Application.IfError(Application.WorksheetFunction.VLookup("Four", .Range("TestTable"), 2, 0), 678)
myCol = Application.WorksheetFunction.Match(myPart, .Range("Item_Name"), 0)
myCavity = Application.WorksheetFunction.Index(.Range("Molding_Data"), Application.WorksheetFunction.Match("Cavities", .Range("pRows"), 0), myCol)
myCycleTime = Application.WorksheetFunction.Index(.Range("Molding_Data"), Application.WorksheetFunction.Match("Cycle Time", .Range("pRows"), 0), myCol)
End With
myPrice = myCavity * myCycleTime/myVol
End Function
失敗した行はmyVal =行です。 IfErrorがエラーを処理できるようにするには、 'on error'を設定する必要がありますか?
または、このタスクをどのように達成できますか。 リッチ
これはトリックでした。今はうまくいく。 – rtemen