• 締切済み

vbaで困っております

エクセルであるキーワードの値が入っている列番号を取得したいのですが、 Find(キーワード, lookat:=xlWhole).Column でうまくいかないです、どなたかご教授いただけないでしょうか。

みんなの回答

回答No.3

キーワード(半角カタカナ)がセルA3に入力されている。 A行の第5-30列に<X+キーワード+Y>が存在するセルが複数あり、 その列番号を全部取得する。 X、Yはキーワードとは別の文字列の意 検索対象に存在するキーワードは全角半角不明 また、キーワードの文字列間に不要な空白が存在する可能性がある。 として、マクロ文を書きます。 AA=Range("A3").Value CC="" For B=5 To 30 BB=Cells(A,B).Value '検索対象値の前後に存在する空白値を削除します。 BB=Application.WorksheetFunction.Trim(BB) '検索対象値のうち半角に出来る文字をすべて半角にします。 BB=Application.WorksheetFunction.Asc(BB) '検索対象値の半角空白を削除します。 BB=Replace(BB," ","") '検索対象値の中にキーワードが左方より何番目に存在するかを検索します。 '検索対象値の中にキーワードが存在しない場合はC=0となります。 C=Instr(BB,AA) If C>0 Then CC=CC & B & "/" End IF Next B Range("B3")=CC 7列目、18列目、24列目にキーワードが存在すれば Range("B3")に[7/18/24]と表示されます。 検索対象セルの値と検索対象値が確実であれば、 検索対象セルの値を加工する必要はありません。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

範囲の指定をしていますか? Range("a1:e10").Find(キーワード, lookat:=xlWhole).Column みたいな感じになりますが。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

そんな極部分的に抜き出されてもどう間違えているかわからないです。 もう少し前後も含めてコードを書いてください。 あと、具体例と、ご使用のExcelのバージョンの情報も……。

関連するQ&A