这是我出于好奇而问的,我有一个循环滚动列以匹配 ID,现在经过一些迭代,脚本关闭并显示错误消息:“未找到匹配”
ParentMatchRowNum=objExcel1.Application.WorksheetFunction.Match(ParentID, ob3.Columns(1), 0)
所以我正在寻找任何一种带有颜色的突出显示,以及它当前的 ID 搜索,只是为了指出脚本没有找到的 ID。突出显示将需要在刚刚通过搜索的当前 ID 上。
错误
谢谢
尝试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
Match 的形式存在问题,没有以Application.Match
. Myrna Larson报告说她在以后的版本中遇到了这个问题。出于这个原因,通常同意安全而不是抱歉并使用Application.Match
.
:-参考。
另一件事是,请注意,当列中只有整数或混合数据类型时,您不应该搜索字符串。保持一致。因此,例如查找integers within integers
或Strings within Strings
.. 这意味着您可能应该将所有alphanumeric
ID 引用转换为CStr(ID)
. (变体在运行时被解释,所以它不能解决问题。)