プロが教えるわが家の防犯対策術!

いつもお世話になっております。
ワークシートシート内を検索して
selectしたいです。

例えば佐藤という名前を検索したら
そのところをセレクトです。

ss.Select のところでエラーになります。
わかるかた教えてくれませんでしょぅか


Dim wS As Worksheet
Dim ss As Range

Dim sht As Worksheet
Dim rng As Range


For Each sht In ActiveWorkbook.Worksheets

For Each rng In sht.Range(sht.Cells(1, 1), sht.Cells(sht.Rows.Count, 1).End(xlUp))

Set ss = rng.Find(What = "佐藤", LookAt:=xlWhole)




Next

Next

ss.Select

質問者からの補足コメント

  • うーん・・・

    ご返事遅れて申し訳ありません
    これでやりましたが
    うまくいきません。
    選択されないです。
    For Each sht In ActiveWorkbook.Worksheets
    For Each rng In sht.Range(sht.Cells(1, 1), sht.Cells(sht.Rows.Count, 1).End(xlUp))
    Set ss = rng.Find(What = "佐藤", LookAt:=xlWhole)
    If Not ss Is Nothing Then
    ss.Worksheet.Select
    ss.Select
    Exit Sub
    End If
    Next
    Next

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/08/30 19:30

A 回答 (2件)

ほ~~~、プリンさんが書いたコードだと、確かに動かないですね・・・。


大変失礼しました。No.1の回答は忘れて下さい。

ちなみに、Option Explicit って入ってますか?これが無いと原因が見つけずらいので、試しに入れてみて下さい。とんでもないところでコンパイルエラーが出てますよ。
    • good
    • 0
この回答へのお礼

大変失礼いたしました。
Option Explicitってこういう時に
つかうのですね
とても勉強になりました。
ありがとうございました。

お礼日時:2021/08/30 20:38

「ワークシートシート内を検索」と書いてありますが、「ワークブック内を検索」ですよね?


要件は「ワークブック内の各シートのA列を順次、検索していって、最初に見つかった”佐藤”をSelectする」で合ってますか?
もしそうなら、Set ss = rng.Find~の後に、次のようなコードを追加すればイケると思います。

If Not ss Is Nothing Then
ss.Worksheet.Select
ss.Select
Exit Sub
End If

ちなみに、「見つかった”佐藤”のセルを全て選択したい」であれば、たぶん出来ないです。
この回答への補足あり
    • good
    • 0

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