Excel VLookup()工作表函数中的错误2042(“N / A”)

时间:2017-10-04 23:47:32

标签: excel vba excel-vba vlookup

需要一些帮助才能找出奇怪的VBA VLOOKUP Type Missmatch错误。代码非常简单,因为sss0是一个随机数,我想要的是在一个范围内找到最接近的值(表'BMD_CDF',范围(“A2:B999”))。在电子表格中,我将表格(“BMD_CDF”)。范围(“A2:B999”)设置为科学......

Dim LookUp_Range As Range
Dim sss0 As Double
Set LookUp_Range = Sheets("BMD_CDF").Range("A2:B999")

sss0=Application.WorksheetFunction.Max(Rnd(), 0.005)
Debug.Print Application.VLookup(sss0, LookUp_Range, 2, 0)

ERROR MSG

enter image description here

什么范围看起来像

enter image description here

1 个答案:

答案 0 :(得分:1)

Error 2042(" N / A")似乎是由Excel工作表函数返回的值引起的:

Aplication.WorksheetFunction.Max(Rnd(), 0.005)
始终小于1的

永远不会进入column A中指定的值范围(> 6)。出于测试目的,尝试将其替换为Column A中该值范围内的任何数字,例如sss0 =6.15,并修改VLOOKUP()语句,如下所示:

Debug.Print Application.VLookup(sss0, LookUp_Range, 2, 1)

(其中1代表逻辑TRUE)以使其正常工作,即根据您的定义找到最接近的值(不完全匹配)。

希望这可能会有所帮助。