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