こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

find での検索について

find での検索について
以下のような繰り返しの処理を作成しました。
(実際のコードよりかなり簡略化して書いています)

for 1 to ***

a = sheets(1).cells.find(what:=ABC)

next

a = sheets(1).cells.find(what:=ABC)

常に変化する変数"ABC"を元に他のブックに検索をかけ、データをコピーしてくる
処理をしています。

つまずいているところは繰り返し中の検索は正常に処理出来ているが
nextを抜けた後の検索がうまくいかない点です。
具体的には他のブックに検索したい値(変数"ABC")があるのに検索できないというものです。

自分なりに以下のような切り分けを行いました。

1,nextを抜けた後の変数"ABC"の値が他のブックに存在しない変数を取得しているのではないか?
と思い直前で変数"ABC"を表示させてみたが正常

2,"ABC"の値に空白や,大文字、小文字等があり検索出来ないのではないか?
と思い調べてみたが正常

3,引き数LookInですべてのパターンを試したがうまくいかなかった。


途方に暮れて、手動で検索を行ってみました。

1,エラーで途中で止まってから他のブックをCtrl+Fで検索(マクロの実行途中で止まっているため、検索しようとしていた値、変数"ABC"がすでに検索する文字列(N):に入力されている)するが対象が見つからない。

2,検索しようとしていた値(他のブックに入力されている値)を直接コピーして検索をかけたところ
正常に検索できた

3,おかしいなと思いCtrl+Fで"検索する文字列(N):"をプルダウンメニューをみてみると全く同じ値がありました。試しになんどか交互に手動検索をかけてみましたが変数"ABC"から取得した方では検索できません。
検索しようとしていた値(他のブックに入力されている値)を直接コピーしたほうから検索出来ます。
どちらの値も違いはないように見えます。

どなたかこのような現象に心あたりがあるかたはいらっしゃいますでしょうか?

投稿日時 - 2010-05-21 21:15:23

QNo.5911800

すぐに回答ほしいです

質問者が選んだベストアンサー

n-junです。

>ところでFalseと表示された場合、どのあたりに問題がありそうでしょうか?
>見た目には違いはないのですが。

・全角、半角の違い
・文字以外の物がある

とかが考えられそう。

まず変数”ABC”に代入する部分と、
コピー元のセルの値を再確認。

---

他にはセルの表示形式で”そのように見えているが実は違うもの”
と言うのに”日付”がありますね。

検索する値は文字列で指定しても、実際のセルにはシリアル値でデータがあり
表示形式で表示を変えている場合とか。

---

あとは”他のブック”と良いながら、実は自ブックを検索しているとか。

>a = sheets(1).cells.find(what:=ABC)

ブックの指定はされていませんが、
その辺で問題はないでしょうか?
⇒検索したいシートを事前にアクティブにしているなら、
大丈夫かな?

投稿日時 - 2010-05-22 12:13:23

お礼

ありがとうございます。無事解決に至りました。

投稿日時 - 2010-05-26 22:39:12

ANo.2

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>変数"ABC"から取得した方では検索できません。
>検索しようとしていた値(他のブックに入力されている値)を
>直接コピーしたほうから検索出来ます。
例えばコピーしてみた値をセルA1に貼付けます。
そのセル値と変数”ABC”は同じになるか試してみましたか?

MsgBox Range("A1").Value = ABC

で True と表示されるか?(Falseなら違うと言う事)

あと引数LookAtでxlPart(部分一致)は試されてますか?
指定してなければ、LookAt:=xlPart を入れてみて下さい。

投稿日時 - 2010-05-22 09:58:35

補足

n-junさん

ご回答ありがとうございます。
環境が会社にしかないので週明けに試したいと思います。
ところでFalseと表示された場合、どのあたりに問題がありそうでしょうか?
見た目には違いはないのですが。

xlPart(部分一致)はすでに試していますが変数”ABC”から取得した値では検索は不可能でした。

投稿日時 - 2010-05-22 11:47:22

あなたにオススメの質問