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()の違い
違いは、エラー処理にあります。WorksheetFunctionXL97では、で表示されない一致の形式に問題がありましたApplication.Match。Myrna Larsonは、彼女が後のバージョンでその問題を経験したと報告しています。そのため、一般的には申し訳ありませんが使用するのではなく、安全であることが認められていますApplication.Match。
:-参照。
もう1つは、列に整数しかない場合やデータ型が混在している場合は、文字列を検索しないように注意してください。物事の一貫性を保ちます。integers within integersしたがって、たとえば、または..を探します。これは、おそらくすべてのID参照をにStrings within Strings変換する必要があることを意味します。(バリアントは実行時に解釈されるため、問題は解決しません。)alphanumericCStr(ID)