这是我的好奇心,我有一个循环,它滚过列以匹配ID,现在经过一些迭代后,脚本关闭并显示错误消息:“找不到匹配”
ParentMatchRowNum=objExcel1.Application.WorksheetFunction.Match(ParentID, ob3.Columns(1), 0)
所以我正在寻找任何一种带有颜色的突出显示,以及当前的ID搜索,只是为了指出脚本找不到的ID。突出显示需要在刚刚通过搜索的当前ID上。
错误
由于
答案 0 :(得分:1)
尝试使用Application.Match
代替Application.WorksheetFunction.Match
。
If not IsError(objExcel1.Application.Match(ParentID, ob3.Columns(1), 0)) Then
ParentMatchRowNum = objExcel1.Application.Match(ParentID, ob3.Columns(1), 0)
Else
'-- do something
End if
以下是MVP分享的一些信息: Application.Match()与Application.WorkSheetFunction.Match()之间的区别
不同之处在于其错误处理。在XL97中,匹配的WorksheetFunction
形式存在问题,但未显示Application.Match
。 Myrna Larson 报告她在以后的版本中遇到过这个问题。因此,通常认为是这样的
安全而非抱歉并使用Application.Match
。
: - Reference
另一件事是,请注意,当列中只有整数或混合数据类型时,不应搜索字符串。保持一致。因此对于例如查找integers within integers
或Strings within Strings
..这意味着您应该将所有alphanumeric
ID引用转换为CStr(ID)
。 (变体在运行时被解释,因此它不能解决问题。)