• ベストアンサー

VBAで、FIND NEXTの検索について

お世話になります。 データの中で品番を見つけてその1列右の品名を別シートへ値を 記述しようとしてまして、そして見つける品番は、2回以上同じ 品番が出てきたりするので、FIND NESTを使っているのですが、 1回しか出て来ない品番の場合は、その品番の1列右の品名を 何回も別シートへ引っ張って来てしまうのですが、1回しか出て 来ない品番は、右の品名を1回引っ張って来たら、それで終わりで、 次の品番をまた探しにいって欲しい場合の記述方法が分からないの ですが、どなたか教えてご教授頂けないでしょうか。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

まずは作成されたコードを提示されては? (多分1周した事の判定を入れていないのかなとは思いますが、  どのようになっているのかが不明ですので) http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_find.html の FindNext メソッド を参照して下さい。 fAddress = c.Address '1回目に見つかったセルアドレスを記録する。 If c.Address = fAddress Then Exit Do   '次に見つかったものが1回目のセルアドレスと同じであれば、  '検索をやめる。 と言うようになっています。 この方法を取られていないのでは?と推測しています。

miruchoko
質問者

お礼

ありがとうございました。 コードを提示するまでも無く、解決致しました。

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

関連するQ&A

  • FINDで探した単語の書き出し方

    お世話になります。 別シートよりFindで探した単語(品番)を違うシートの あるセルから下の行に見つかった数だけ書き出したい。 またそれには条件もあって、FINDで探した単語の一つ左の セルにある文字が入っている場合だけ上記の様に書き出したい のです。それに付随してその単語の属性をも、その単語の右の セルにこれも書き出したいもですが、どうも記述が分かりません。 ご教示下さいませ。

  • Excel VBA の質問です

    ユーザーフォームの中のコンボボックスの値をリストから呼び出して選択したとき、テキストボックスの値を同じリストの別の列から表示させたいです 会社の仕事で品番と品名がありますが、必ず品番は一つの固定の品名を持っています。 なので、品番を製品のマスタからひろってきてるのでわざわざ品名を入力するのは面倒です 製品マスタは例えばA列の2行目に ある品番があればその品名がB列の2行目に必ずあります よろしくお願いします

  • 【excelVBA】Findメソッドで検索対象を複数列

    findメソッドで、検索対象を複数列&検索条件を複数にしたいのですが、可能でしょうか? イメージ的には、下のようなデータが入っているシートから、 AとB列を条件にしてC列の同じ行の値を取得したいのです。 A |B |C 00|00|01 00|00|02 00|01|01 Range("A:B").Find(what:="00"&"00"・・・)のような感じです。 →期待される取得結果は01と02です。 今のところ方法がおもいつかないので、 (1)A列を条件にしB列 (2)(1)のB列を条件にしC列 と二段階で取得するしかないかな~と思っています。 このような処理は不可能でしょうか?また可能ならばその記述方法をご教授ください。よろしくお願いします。

  • VBAのFindメソッドのエラー理由

    初歩的な質問ですがよろしくお願いいたします。 シート1のi行6列目の文字列をシート2の3列目から探してその行数をシート1のi行16列目に 引っ張ってくる記述をしたく、下記のようなコードを書いたところ1004のデバック表示がされました。下の記述をどうすれば正常に動くでしょうか。 Range(i, 16) = Worksheets(2).Range(Cells(5, 3), Cells(5, 3).End(xlsown)).Find(Cells(i, 6)).Row

  • EXCEL VBAのFind について

    VBAで、特定の文字が入っているセル位置(結合セル)を取得したく、 シートのコード記述で --- Private Sub Worksheet_Change(ByVal Target As Range) Dim w_CelObj As Object Set w_CelObj = ActiveSheet.Cells.Find(What:="あああ", LookAt:=xlWhole, MatchByte:=False) MsgBox w_CelObj.Row MsgBox Cells.Find(What:="いいい").Row End Sub ----- と記述し、"aa"も"bb"もどちらの方法でも取得できました。 ですが、これを別のEXCELブック(既にシートがたくさんあり、コードもびっしり記述してあります)で同様のことを行おうとするとエラーになってしまいます。 ※新しいシートを作成し、そのシートにコードをコピーして試しました。 セルの結合を解除すると正常に取得できるのですが、結合セルだとFindされてきません。 調べてみましたが、「Cells.Find」ときちんとセル全体を指定していれば大丈夫のようで、同様の事例を検索できませんでした。 他に何を調べればよいでしょうか? ご協力よろしくお願いします。

  • 文章内に品番が記載されているセルを検索する

    よろしくお願いします。 商品説明の文章が記載されている列があります。 そこに品番を記載しているのですが、複数の品番を変更する必要が発生しました。 該当品番を別シートにリスト化しておりますので、 そのリストの品番が文章内に記載されているか判定させたいのですが、 ネットで検索してもうまくいかず、質問させていただきました。 ご教授いただけるとありがたいです。 やってみた関数 A列=文章 サーチシートA列=品番 B1=IF(ISERROR(FIND(サーチ!$A$1:$A$1000,A1))=TRUE,"×","○") ⇒ ×しか出ない。

  • 検索VBAを教えてください。

    VBAの勉強中です。 超初心者です。 シート1のB3に入力した値を、シート2のデータベースのC列から検索して、その検索した値と同じ行のD列・E列・F列の値を、シート1のB4・ B5・B6に表示したいと思います。 <シート1>    A     B     C     D 1 2     3       あああ ←ここを入力すると 4       aaa   ←表示したい! 5       bbb   ←表示したい! 6       ccc   ←表示したい! <シート2>    A    B    C      D     E     F 1           あああ    aaa     bbb     ccc 2           いいい      eee     fff      ggg 3           ううう      hhh      iii       jjj 4           えええ     kkk      mmm     nnn 5             おおお     ooo     ppp     qqq findを使えばいいと聞きましたが、使い方がよくわかりません。 例を読みましたが、どう自分に生かせばいいのかわかりませんでした。 どなたか未熟な私に教えていただけませんか? どうぞよろしくお願いいたします。

  • エクセルで表の相違確認をVBAでしたい。

    お世話になっております。 下記の様な表がシート1とシート2に有、 シート2がシート1と比較して、行が多かったり、または 数量だけが変わっていたり、行が減っていたり、 表の行数は100から200行くらいあるので、VBAでどこが 違うかをすぐ分かる様に確認したいと思っています。 下記の表はあくまでも例ですが、実際は同じNO・同じ品番・同じ品名・同じ数量で複数行あったりします。 どの様に記述していいか分からなく、ご教示下さいます様宜しくお願い致します。    記 A列  B列  C列   D列   E列    No  品番  品名   地区   数量  236  A6TET  みかん  市川   3本 248  A7TGR  りんご  松戸   5本 273  B9GKT  ぶどう  柏    14本 273  A8UFE  すいか  行徳   6本    381  C2ROF  いちご  平井   22本

  • VBAで複数条件検索どうすればよいですか?

    【Sheet1】 発注日   品番    ロットNo      納品日   A     B      C          D 1 3/11  553  111-111-1111   3/17 2 3/11  123  222-222-2222 3 3/11  223  333-333-3333 4 3/12  123  444-444-4444   3/17 5 3/12  553  555-555-5555 【Sheet2】  納品日  品番   ロットNo    A    B     C 1  3/17  553  111-111-1111 2  3/17  123  444-444-4444 3  3/17  223  666-666-6666 エクセル2010・VBAで、【Sheet2】の品番とロットNoの条件に合う行を【Sheet1】より探し、【Sheet1】D列に納品日を入力し、その行のロットNoを明るい緑で塗りつぶす。 【Sheet2】の条件が【Sheet1】にないなら【Sheet2】の行のロットNoを、赤で塗りつぶす。 【Sheet1】は発注リスト、【Sheet2】は納品リストになります。 納品日は検索した日の日付になります。 Findを使い試行錯誤しましたが、思うように動かず、スキル不足で困っています。どなたか、ご教授願います。宜しくお願い致します。

  • VBAマクロで検索をしたい

    VBAマクロで検索をしたい 1つの列に8~11桁の数字がならんでいます。 別シートに検索シートを作り、下4桁(右から4桁)で抽出したすべての数字を出すにはどうしたらいいでしょうか?><; 例)  シート1   A列 1 0001234555 2 12345678  3 3211234555 4 987654321 5 3211234555 6 1111114555 7 12344555 8 あ123い4555  シート2  A列検索  4555 ← 入力   ↓以下が検索される  0001234555  3211234555  3211234555  1111114555  12344555  あ123い4555 ※同じ数字が並ぶ場合もあり、その場合は複数あることを示すため、その個数分出して欲しい。 ※右4桁は数字のみだがそれ以外はひらがな、カタカナが入る場合がある どなたか教えてください><;