• 締切済み

マクロ FIND

いつも回答して頂きありがとうございます。FINDで検索した情報を使用して、さらにFINDで検索した場合、検索結果がNOTHINGになってしまいます。解決方法を教えて頂けないでしょうか?よろしくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>解決方法を教えて頂けないでしょうか? 具体的に何をどうしたいのかも示さずに、どうやって解決方法が導けますか。 >検索結果がNOTHINGになってしまいます 考えられる原因は 1.検索対象範囲の与え方が間違っている 2.間違った検索値を与えている 3.検索対象範囲に検索値がそもそも存在しない 4.検索の条件の与え方が間違っている 等々多岐にわたります。 「何をしたい」のか説明する事もできないのでしたら。 まずマクロ以前の問題として、ワークシート上で検索の操作を手を動かして実際に行い、意図した動作を手動で導けるよう検索対象範囲とか検索のオプションとかをキチンと設定して行ってください。 ちゃんとエクセルが操作出来るようになったら、それを新しいマクロの記録でマクロに録り、使えるマクロを入手してください。 そのうえで初めてVBAのヘルプをよく読んで、それぞれの名前付き引数に何を与えるとどうなるのかキチンと理解してから、マクロを書いてみると良いかもしれません。

kero1192kero
質問者

お礼

会社で作成しており、細かい情報をそのままコピーする事も出来ず、又、外部のネットワークと接続されていなかったもので、ヘルプで確認しようにどうにも出来ませんでした。 質問内容としては、 1回目のFINDでSETしたresを、別のシートでFINDで検索した時に whatの項目にresを使用し検索しましたが、検索結果がNothingだったので、訳が分からず、質問した次第です。 順番が逆ですが、質問後FINDの各項目について調べた所、原因が何となく分かりました。set res = .find(what:="定期", lookin:=xlvalues, lookat:=xlwhole, searchdirection:=xlprevious) のlookin:=xlvalues(値)をlookin:=Formulas(数式)に変更して問題無く動作しました。お騒がせして申し訳ありませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

NOTHINGになる例を補足してください。

kero1192kero
質問者

お礼

会社で作成しており、細かい情報Bをそのままコピーする事も出来ず、又、外部のネットワークと接続されていなかったもので、ヘルプで確認しようにどうにも出来ませんでした。 質問内容としては、 1回目のFINDでSETしたresを、別のシートでFINDで検索した時に whatの項目にresを使用し検索しましたが、検索結果がNothingだったので、訳が分からず、質問した次第です。 順番が逆ですが、質問後FINDの各項目について調べた所、原因が何となく分かりました。set res = .find(what:="定期", lookin:=xlvalues, lookat:=xlwhole, searchdirection:=xlprevious) のlookin:=xlvalues(値)をlookin:=Formulas(数式)に変更して問題無く動作しました。お騒がせして申し訳ありませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロ FINDについて

    いつも回答して頂き、とても感謝しています。 マクロを1回実行させた時はすんなりいくのですが、続けて同じマクロを実行させるとFINDの記述の箇所でNothingになり、エラーが発生してしまいます。 引数を『Set 〇〇 = Nothing』でリセットしても駄目でした。しかし、ブックを一度閉じた後、実行すると最初だけはエラーが発生しません。 記述を載せたいのですが、会社で作ったものなので、持ち帰る事もできません。 この説明だけで申し訳ないのですが、対応方法を教えて頂けないでしょうか?宜しくお願い致します。

  • マクロ FINDについて

    いつも回答して頂きありがとうございます。 ネット等で調べましたがさっぱり分かりません。指定した文字が下から数えて2番目にくる場合の記述方法について教えて頂けないでしょうか?宜しくお願い致します。 Find("定期", , xlValues, 1, , 2) のどこを変えたらよろしいでしょうか?

  • マクロ 【Find 】についての質問です

    Office 2003を使用しております。 マクロの「Find」について質問致します。 A 列の文字を検索するために、下記のような方法で 行いました。該当文字は複数あるものとして、検索された場合 検索行の次の行から再検索し、全て取り出したいと 考えております。  GG = 1 While GG < 100  Set GT = Range("A" & GG & ":A1000").Find("A"),LOOKAT:=True) If GT Is Nothing Then GoTo EN Else GG = Range("A" & GG & ":A1000").Row() End If Wend EN: 「Find」で検索しますと、該当文字が複数の場合、1個目は 検索スタート行は検索せずに、次の行から検索するのですが それ以降の行に該当文字がない場合は、検索スタート行から 検索することがわかりました。どうしてなのでしょうか? 上のマクロを実行致しますと、最後の該当文字を検索した場合 その行から再検索し、同じ行が検索されエンドレスになって しまいます。 宜しくお願い致します。

  • エクセルマクロ・Cells.Find のエラー

      VBA初心者です。 ファイルA の C列 に入力されているデータが ファイルB に含まれているかどうか検索するマクロを Cells.Find を使って作ろうとしています。 データがファイルBに存在する場合は問題ありませんが存在 していない場合エラーが出て止まってしまいます。 ヘルプを見ると「セルが見つからなかった場合は、Nothingを返します」 と書かれていますが、どうもNothingとは返ってきません。 このエラーを回避する方法を教えてください。 例えばこんなマクロを組みました。  For tate = 0 To 19    Windows("ファイルA.xls").Activate    Range("C1").Offset(tate, 0).Select    データ = Range("C1").Offset(tate, 0)    Windows("ファイルB.xls").Activate    Cells.Find(データ, MatchCase:=False).Activate  Next tate 例えば最後の2行を    結果 = Cells.Find(What:=ISISDate, MatchCase:=False).Activate      MsgBox (結果)  Next tate とするとデータが含まれている場合は「True」と返ってきますが、 含まれていない場合は MsgBox が表示される前にエラーとなってしまいます。 とりあえずこのエラーを回避する方法をご存知でしたらお教えください。  

  • マクロのFINDメソッドで質問です。

    マクロの初心者で、いつもお世話になっております。 FINDメソッドを使って別々のシートから同じIDを探す処理をしたいのですが、IDが片方にしか無い場合に検索2rangeが"nothing"になってしまい止まってしまいます。 抜粋ですか以下の様にコーディングしました。 解る方がいましたらアドバイスをお願いします。 IDはIDがセットされている列です。 シート2を上から1つずつ見ていき、 シート1から該当するIDを探す処理をします。 最終的には該当したIDの行数を記憶して、 シート1とシート2をマッチングさせたいのですが。 Dim 検索range As Range Dim 検索2range As Range ID = Sheet2.Cells(LOOP_C1, 検索列).Value Set 検索Range = Range(Sheet1.Cells(F2TOP,検索列),Sheet1.Cells(LASTRow, 検索列)) Set 検索2range = 検索Range.Find(What:=ID, LookAt:=xlWhole, SearchOrder:=xlByRows, searchformat:=True).Row ※ If 検索2range Is Nothing Then Else   検索2range.Activate End If ・ ・ ・ ※の箇所で止まってしまいます。

  • マクロのCells.Findについて

    エクセルマクロのCells.Findについて教えてください。 特定の文字列を含むセルを検索するときにCells.Findを使うと思うのですが、例えば、「スペル」という文字列を検索したいけれども、「ゴスペル」というような文字列は排除しながら検索できますか?「スペル」と入力されているセルと、「ゴスペル」と入力されているセルと、「スペル、ゴスペル」と入力されているセルがあったときに、「スペル」や「スペル、ゴスペル」と入力されているセルを検索したいです。 Cells.FindのWhat:=の記入中身を工夫すればできないかなと頭を悩ませていますが、Cells.Find以外の方法でも結構です。どうか宜しくお願いします。

  • マクロFind検索で見つからなかった時の対処

    エクセル2013です 以下のコードを作成しましたが .Rowが色で塗られ 「型が違います」でERRになります。 .Columnの方はERRでなく なぜ.Rowの方がERRなのでしょうか? よろしくお願いします。 Dim 検索行番号 As Range Dim 判定列番号 As Range Dim 検索列番号1 As Range Dim 検索列番号2 As Range Set 検索行番号 = Rows(1).Find("みかん").Column If 検索行番号 Is Nothing Then MsgBox "みかんが有りません。" End If Exit Sub Set 判定列番号 = Rows(1).Find("りんご").Column If 判定列番号 Is Nothing Then MsgBox "りんごが有りません。" End If Exit Sub Set 検索列番号1 = Range("B:B").Find("大箱").Row If 検索列番号1 Is Nothing Then MsgBox "大箱が有りません。" End If Exit Sub Set 検索列番号2 = Range("B:B").Find("小箱").Row If 検索列番号2 Is Nothing Then MsgBox "小箱が有りません。" End If Exit Sub

  • VBA Find

    困りました、、 Findを使って検索しようとしていて、 検索する値に変数を使っているのですが (変数は文字列) 検索するものがたくさんあり、 ひとつの項目ごとにFindを書くのがとても面倒です 調べてみても数字を増やしていく方法しか見つからず どうすればいいのか分からなくなりました^^; どうにかひとつのFindで10個ほどある項目を順番に検索していく方法が ありましたらお願いします(__)

  • マクロ FIND 検索方向の変更

    いつも回答ありがとうございます。 FINDを使用した検索方向の変更についての質問です。以下のFINDの記述方法で、上から一発目に捉えられたキーワードではなく、下から一発目に捉えられたキーワードに変更するにはどうしたらよろしいでしょうか?それとも、FINDの記述方法を大幅に変えなければいけないのでしょうか?御指導の程宜しくお願い致します。 Sub TEST() Dim d As Integer Dim e As Integer Worksheets("一覧").Activate d = 3 e = 3 Do While Worksheets("一覧").Cells(d, 2).Value <> "" Dim c As Variant Dim R As Range Dim s As Range With Worksheets(Worksheets("一覧").Cells(d, 2).Value) Set c = .Columns("H").Find("増", , xlValues, 1) If Not c Is Nothing Then Set R = .Range(c.Offset(1, -4), .Cells(Rows.Count, "D").End(xlUp)) Set s = c.Offset(, -5) With Worksheets("編集用一覧") .Range(.Cells(e, 4), .Cells(e, 5)).ClearContents .Cells(e, 4).Value = s .Cells(e, 5).Value = Application.Sum(R) End With End If End With d = d + 1 e = e + 4 Loop End Sub

  • マクロ findを使用しての列番号検索

    いつも回答して頂き、とても感謝しています。 質問内容ですが、 FINDを使用して列番号を検索する時、FINDでセル位置を取り出し、そのセル位置を元に列番号を取り出しています。FINDの記述部分で列番号を検索するにはどうしたらよろしいのでしょうか?宜しくお願い致します。 Dim 項目1 As Range Dim c1 As Long If Application.CountIf(Rows(4), "みかん") = 1 Then Set 項目1 = ws2.Rows(4).Find(what:="みかん", LookIn:=xlValues, lookat:=xlWhole, _ SearchOrder:=xlByColumns, searchdirection:=xlPrevious) c1 = 項目1.Column End If

専門家に質問してみよう