前提・実現したいこと
エクセルで以下のような表がsheet1に記載されているとき
例えば商品ラベル列で「100」が含まれている商品ラベル行のみ抽出し、隣のシート(sheet2)へ書き出すマクロを描きたいのですが
やりかたを教えていただけますでしょうか?
商品ラベル | 値段(円) | 割引 |
---|---|---|
a_100_果物 | 300 | 5 |
a_101_食器 | 500 | 5 |
a_120_植物 | 100 | 0 |
a_103_果物 | 400 | 10 |
b_100_食器 | 500 | 15 |
(このようなシートが下に1000行ほどつづきます。)
以下の部分までマクロを書いているのですが、抽出条件の部分の書き方がわかりません。
sub filter_and_write() sheet2.ClearContents '出力先のsheet2の値をすべてクリアしておく Dim rowsData As Long '行数カウント用の変数 rowsData = sheet1.Cells(Rows.Count, 1).End(xlUp).Row '最後の行数を取得 lael_code = Application.InputBox("抽出したい商品ラベルの番号を入力してください", "商品ラベルに含まれる番号を入力") 'ここで100と入力するようなメッセージボックスを作る Dim i As Long, k As Long k = 1 '出力先のセルの始点 For i = 2 To rowsData label_data = sheet1.Cells(i, 1).Value If ”label_dataに「label_code」が含まれている場合” Then sheet1.Range(sheet1.Cells(i, 1), sheet1.Cells(i, 3)).Copy sheet2.Cells(k, 1) '1行ごとにsheet2へコピーする k = k + 1 End If Next i endsub
補足情報(FW/ツールのバージョンなど)
excel 2016
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。