![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以前にこちらでFind Nextを教わり大変ためになりました。以前は検索したいものが一つ で検索範囲には検索するものが複数ある場合そのセルを表記することを教えていただきました。
今回は、ファイルのシート名をすべて取得し、そのシート名と一致するものを(検索したいものの左ににはいろいろの文字が入ります。●〇〇文字数バラバラ)が検索範囲が複数あった場合(場合もあり)、そのシートのB2セルにそのものの空白より前の文字の入力することをしたいです。
質問の内容と私が書いたものが全然違うと思いますがどう直せばいいのでしょうか?
'シート名取得
Dim i As Long
For i = 1 To Worksheets.Count
Cells(i, "N") = Worksheets(i).Name こちらは毎日変化なく機械のしません。
Next
Set myRange = Worksheets("Sheet1").Range("B14:E20")こちらは毎日の機械メンテナンスがリンクされていて毎日変わります。
keyWord =〇〇〇 ←ここを複数検索したいのですがこれだと一つしか検索できないです。何を入れればいいんでしょうか?
Worksheets("Sheet1").Cells(i, "N")としたんですが違いますよね。。。
Set myObj = myRange.Find(keyWord, LookAt:=xlPart)
Dim s As String
Dim myCell As Range
Set myCell = myObj
Do
Set myCell = myRange.FindNext(myCell)
Worksheets(i).Range("B2").Value = sprit(keyWord," ")
Loop While myCell <> myObj
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No.1のお礼に対して。
もしかしてですけど検索したい曖昧語句は各シート名であり、書き込みたいのはそのシートのB2って事なんでしょうか?
でもそうなるとFindNextで複数見つけても書き込むセルは1個ですから、本来ですと最初に見つかったならその値で終わりって感じしかしません。
一度質問を締め切って箇条書きででも良いですが『やりたい作業手順』を書いて、この質問のURLをコピペで貼り付けて再質問が宜しいかもです。
全てのシートの中を検索するにしても、検索したい値はどこから得るのか(シート名であればそのように)そして取得した値をどこに並べていきたいのか(FindNextを使うって言うのが前提であれば)と思います。
ありがとうございます。
検索したい曖昧語句は各シート名であり、書き込みたいのはそのシートのB2って事で合っています。
探し出すというものをネットで調べて行き詰まり質問させてもらいました。
ご指示の通り一旦質問締め切らせてもらい再度、質問させていただきます。
No.2
- 回答日時:
こんばんは、
#1様の通り、内容を把握できないのですが、
keyWord =〇〇〇 ←ここを複数検索したいのですがこれだと一つしか検索できないです。何を入れればいいんでしょうか?
複数回キーワードを変えれば良いのでは?と思います。
例えば、(変数名しっくりこないかもですが)
For Each keyWord In Worksheets
Set myObj = myRange.Find(keyWord.Name, LookAt:=xlPart)
・
・
・
Loop While myCell <> myObj
Next keyWord
あ、これ
For i = 1 To Worksheets.Count
Cells(i, "N") = Worksheets(i).Name
Next
この場合、(出力する必要があれば別ですが)不要です。
それと
split(keyWord," ") でなく Split(myCell, " ") では無いかな。
さらに、myObjがNothingの時の処理も必要かも、、、(エラー対策)
検証していないので、ご提示のコードが問題なく実行される事が条件です。
No.1
- 回答日時:
keyWord =〇〇〇 ←ここを複数検索したいのですがこれだと一つしか検索できないです。
何を入れればいいんでしょうか?Worksheets("Sheet1").Cells(i, "N")としたんですが違いますよね。。。
『違いますよね』と問われても逆に回答者としては『何を複数検索したいの?』と言う情報が欲しい所です。
あと
>For i = 1 To Worksheets.Count
これって全てのシートが対象になりそうですが、
>Cells(i, "N") =
この Cells(~ として書き込むシート自体もシート名が必要なのでしょうか?
と言うかどのシートなんだろう?
画像があるとわかりやすかったのかも。
ダミーでも良いですがデータは仕様に添った形の物を。
いつもありがとうございます。
シートは開いているファイルの全てのシートで、
keyWord =〇〇〇は、開いているファイルのシートを取得し取得した言葉を探し出すというイメージで作ったのですが。
考えが初心者でどう説明したらいいのか、伝わりますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) 日付を重複させずに数えたい 4 2022/12/04 16:26
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
特定の文字を含むシートだけマ...
-
同じ作業を複数のシートに実行...
-
excelのマクロで該当処理できな...
-
【Excel VBA】Worksheets().Act...
-
ExcelVBA シート名を複数セルか...
-
エクセルのシート名変更で重複...
-
【VBA】シート名に特定文字が入...
-
実行時エラー1004「Select メソ...
-
ブック名、シート名を他のモジ...
-
ExcelVBA:複数の特定のグラフ...
-
別のシートを参照して計算する方法
-
ExcelのVBAのマクロで他のシー...
-
VBAで指定シート以外の選択
-
【エクセル】オプションボタン...
-
シート名の一部を変更する方法...
-
VBAで同じシート名のコピー時は...
-
VBA 入力月で該当シートを選択...
-
ListViewの画面の更新
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
同じ作業を複数のシートに実行...
-
ブック名、シート名を他のモジ...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのシート名変更で重複...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
Excelマクロのエラーを解決した...
-
エクセル・マクロ シートの非...
-
VBAで同じシート名のコピー時は...
-
ExcelのVBAのマクロで他のシー...
-
【VBA】色のついたシート名を取得
おすすめ情報
検索したいものの左にはいろいろの文字が入ります。●〇〇 △△△ □□□ など文字数バラバラで空白は何個かありますが、左部分のみ転記したいです。この場合なら●〇〇です。spritじゃなくてsplitですね。