我有一个函数,它有一个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 =行。 是否需要设置'on error'来允许IfError处理错误?
或者,我该如何完成这项任务。 Rich
这个伎俩。现在工作正常。 – rtemen