- 締切済み
EXCEL VBAのFind について
VBAで、特定の文字が入っているセル位置(結合セル)を取得したく、 シートのコード記述で --- Private Sub Worksheet_Change(ByVal Target As Range) Dim w_CelObj As Object Set w_CelObj = ActiveSheet.Cells.Find(What:="あああ", LookAt:=xlWhole, MatchByte:=False) MsgBox w_CelObj.Row MsgBox Cells.Find(What:="いいい").Row End Sub ----- と記述し、"aa"も"bb"もどちらの方法でも取得できました。 ですが、これを別のEXCELブック(既にシートがたくさんあり、コードもびっしり記述してあります)で同様のことを行おうとするとエラーになってしまいます。 ※新しいシートを作成し、そのシートにコードをコピーして試しました。 セルの結合を解除すると正常に取得できるのですが、結合セルだとFindされてきません。 調べてみましたが、「Cells.Find」ときちんとセル全体を指定していれば大丈夫のようで、同様の事例を検索できませんでした。 他に何を調べればよいでしょうか? ご協力よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
6 日前にほぼ同一の質問に回答したばかりですので、参考 URL を参照してください。
- keithin
- ベストアンサー率66% (5278/7941)
>同様のことを行おうとするとエラーになってしまいます。 同様じゃなく,ご相談で書かれているとおり >「Cells.Find」ときちんとセル全体を指定していれば大丈夫のようで ご質問に書かれたマクロとは違う,例えば「対象列を1列に絞った範囲でfindする」みたいなマクロを書いていると,具体的には実行時エラー91等が発生します。 ご自分でも既に対処を得られているようにcells.findするか,若しくは結合されたセル範囲を含む列範囲などを対象に検索させます。