0

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

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

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

错误

错误

谢谢

4

1 回答 1

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 中,WorksheetFunctionMatch 的形式存在问题,没有以Application.Match. Myrna Larson报告说她在以后的版本中遇到了这个问题。出于这个原因,通常同意安全而不是抱歉并使用Application.Match.

:-参考

另一件事是,请注意,当列中只有整数或混合数据类型时,您不应该搜索字符串。保持一致。因此,例如查找integers within integersStrings within Strings.. 这意味着您可能应该将所有alphanumericID 引用转换为CStr(ID). (变体在运行时被解释,所以它不能解决问题。)

于 2012-12-23T19:39:09.690 回答