前提・実現したいこと
エクセルの業務マクロを作成中です。
「ある文字列で検索して、表のある列のセルに存在した場合隣の列の値を抽出する」
という処理がしたいのですが、検索対象の列はセル内改行で複数の値の箇条書きのような状態です。
それだけなら部分一致検索でよいのですが、検索対象の値には別の値に文字を後ろにくっつけたようなものがあるため、
短いほうの値で検索するとその値まで抽出されてしまい、困っています。
どのような方法なら可能なのか、ご教授ください。
発生している問題・エラーメッセージ
=====|=====| val1 |abc | |efg | =====|=====| val2 |abcd | |efg | =====|=====| val3 |abc | |abcd | |efg | ===========| ↑のような表から"abc"で検索してval1とval3だけ抽出したいが、val2も抽出されてしまう
該当のソースコード
VBA
1Sub マクロ() 2 3 Dim rng As Range 4 Dim i As Long 5 Dim ary As Variant 6 Dim listSheet As Worksheet 7 Dim Val 8 9 Set listSheet = ThisWorkbook.Worksheets("一覧") 10 11 listSheet.Select 12 Set rng = Range(Cells(1, 36), Cells(Rows.count, 37).End(xlUp)) 13 ary = rng 14 For i = LBound(ary) To UBound(ary) 15 listSheet.Activate 16 If ary(i, 2) Like "*abc*" Then 17 val = ary(i, 1) 18 Call valを使うsub(val) 19 End If 20 Next 21 22End Sub
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/17 04:41