突出显示正在列上搜索的单元格

时间:2012-12-23 18:13:50

标签: excel-vba vbscript vba excel

这是我的好奇心,我有一个循环,它滚过列以匹配ID,现在经过一些迭代后,脚本关闭并显示错误消息:“找不到匹配”

 ParentMatchRowNum=objExcel1.Application.WorksheetFunction.Match(ParentID, ob3.Columns(1), 0)

所以我正在寻找任何一种带有颜色的突出显示,以及当前的ID搜索,只是为了指出脚本找不到的ID。突出显示需要在刚刚通过搜索的当前ID上。

错误

Error

由于

1 个答案:

答案 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 integersStrings within Strings ..这意味着您应该将所有alphanumeric ID引用转换为CStr(ID)。 (变体在运行时被解释,因此它不能解决问题。)