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

需要一些帮助来弄清楚奇怪的VBA VLOOKUP Type Missmatch错误。 代码非常简单,因为sss0是一个随机数,我想要的是在范围(表'BMD_CDF',Range(“A2:B999”))中find最接近的值。 在电子表格中,我为表格设置了格式(“BMD_CDF”)。Range(“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 2042 (“N / A”)似乎是由Excel工作表函数返回的值引起的:

 Aplication.WorksheetFunction.Max(Rnd(), 0.005) 

总是小于1将永远不会进入指定范围的值(> 6) column A 。 出于testing目的,请尝试用Column A中该值范围内的任何数字replace它,例如, sss0 =6.15并修改VLOOKUP()语句,如下所示:

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

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

希望这可能有帮助。