0
我需要知道A級車中長度爲B的車是否處於其適當的長度範圍內。我想通過VBA將VLookup放在一個具有每個類的最大和最小長度值的表中。我的代碼,其中列23 =長度,列16 =類,列101 =返回它是否不在正確的範圍內。VLookup不等式錯誤
Dim ClassCodeTable As Range
Set ClassCodeTable = Worksheets("Class Code Tables").Range("A:G")
Range("A1").Select
Lastrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Lastrow
If Cells(i, 23).Value > Application.WorksheetFunction.VLookup(Cells(i, 16), ClassCodeTable, 3, False) And Cells(i, 23).Value < Application.WorksheetFunction.VLookup(Cells(i, 16), ClassCodeTable, 4, False) Then
Cells(i, 101).Value = ""
Else
Cells(i, 101).Value = "Length Range Error"
End If
Next
此代碼返回一個錯誤1004,無法獲取WorksheetFunction類的VLOOKUP財產。但這種方法工作時,我VLookup是否具有特徵C 的A類汽車等於 ClassCodeTable中類A的預期分類值。在我看來,返回的VLookup值不會被存儲爲數字,即使查找表中的所有值都是數字。
有沒有辦法將VLookup值轉換成可以根據不等式檢查的數字?
刪除worksheetfunction只有使用應用程序.vlookup –
@NatG顯示的錯誤信息與您對錯誤的評估不符。 VLookup返回一個Variant變量,所以如果這些值是數字,則比較有效。在同一個語句中調用兩次Application.WorksheetFunction.VLookup可能會有問題。你是否試圖將測試分爲兩步? –
奇怪的是,我試過你的代碼,它完美的工作,但是當我命名名稱中沒有空格的工作表ClassCodeTable。當插入我得到的空格時:運行時錯誤1004 - 應用程序定義或對象定義的錯誤。 –