VBA中的match函数返回值怎么整好?

Dim RowOfSN

RowOfSN = Application.Match(numberSN, xlSheet.Range("B1:B2"), 0)
If RowOfSN = "#N/A" Then MsgBox ("Summary文件中没有此SN记录,请仔细核对该文件!") _
Else _
当返回值为空的时候,程序会报类型不匹配,可RowOfSN是可变类型的变量啊 ,怎么会出这种问题?怎么改才好?

第1个回答  推荐于2018-05-10
将RowOfSN = "#N/A" 改为 IsError(c)即可。
代码如下:
Sub 宏1()
Dim i As Long
On Error Resume Next
i = Application.Match(CDbl(DateValue("2012-11-19")), ActiveSheet.Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row), 1)
If Err.Number = 0 Then MsgBox i
End Sub本回答被网友采纳
第2个回答  2019-03-24
你把application.worksheetfunction.match改成application.match就好了。
这个match函数和vlookup一样比较古怪,vba中使用的时候最好不带worksheetfunction,否则总是出错中断。
第3个回答  2009-09-24
RowOfSN = "#N/A" 改为 IsError(c)本回答被提问者采纳
相似回答