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()の違い

違いは、エラー処理にあります。WorksheetFunctionXL97では、で表示されない一致の形式に問題がありましたApplication.MatchMyrna Larsonは、彼女が後のバージョンでその問題を経験したと報告しています。そのため、一般的には申し訳ありませんが使用するのではなく、安全であることが認められていますApplication.Match

:-参照

もう1つは、列に整数しかない場合やデータ型が混在している場合は、文字列を検索しないように注意してください。物事の一貫性を保ちます。integers within integersしたがって、たとえば、または..を探します。これは、おそらくすべてのID参照をにStrings within Strings変換する必要があることを意味します。(バリアントは実行時に解釈されるため、問題は解決しません。)alphanumericCStr(ID)

于 2012-12-23T19:39:09.690 に答える