下記のようなコードで特定の範囲内を検索しています。

X = 16
Y = 1
Do While Cells(Y, X).Value <> ""
Set lFoundCell = Range("K8:K65536").CurrentRegion.Find(What:=Cells(Y, X), lookat:=xlWhole)
Y = Y + 1
Loop

Cells(X, Y)には文字列が格納されていてK8:K65536の範囲内に同じ値があった場合に
lFoundCellに該当箇所をRange型の値で格納しています。

しかし、実際にこれを実行すると検索対象外のB列の値が格納されてしまいます。
たしかにB列にはCells(Y, X)と同じ値があるのですが
検索対象はK8:K65536に限定されているはずです。
これはなんでなんでしょうか?

何かコードにミスがあればお教えください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>Set lFoundCell = Range("K8:K65536").CurrentRegion.Find(What:=Cells(Y, X), lookat:=xlWhole)



CurrentRegionが不要です。
そして確実に検索するためには、引数LookInもセットしましょう

Set lFoundCell = Range("K8:K65536").Find(What:=Cells(Y, X), LookIn:=xlValues, lookat:=xlWhole)

 
    • good
    • 0

CurrentRegionプロパティを外せばどうなるでしょうか?



アクティブセル領域を選択する-CurrentRegionプロパティ
http://www.relief.jp/itnote/archives/001720.php
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング