[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数のシートから選択したものを別シートに移行したい』(ぺい)
シート1
A B C D F G
1 【材料A】
2 ***1 ヶ
3 ***2 ヶ
4 ***3 ヶ
5 ***4 ヶ
6 【材料B】
7 ***10 ヶ
このようなシートがあり(上図参照)
種類を【 】で区切っており、例えばB2セルに10と記入したらシート2の方に
(下図参照)シート1のA2・B2・C2セルのデータとA1セルの【材料A】も反映される
シート2
A B C D F G
1 【材料A】
2 ***1 10 ヶ
3
4
5
6
7
そこから続けてシート1のB3セルに5と
記入したら(下図参照)シート2の方に続けて反映される
※【材料A】はそのまま継続、【材料A】の項目が無くなれば自動で消去
シート2
A B C D F G
1 【材料A】
2 ***1 10 ヶ
3 ***2 5 ヶ
4
5
6
7
この次にシート1のB7セルに2と記入したら
A3・B3・C3セルのデータとB6セル【材料B】シート2の方で下記のように
反映される
A B C D F G
1 【材料A】
2 ***1 10 ヶ
3 ***2 5 ヶ
4 【材料B】
5 ***7 10 ヶ
6
7
この状態でシート1のB4セルに3と入力した場合は
下図のように【材料B】と***7 10 ヶが1セルずれて反映される
シート2
A B C D F G
1 【材料A】
2 ***1 10 ヶ
3 ***2 5 ヶ
4 ***3 3 ヶ
5 【材料B】
6 ***7 10 ヶ
7
※【材料○】はA・Bだけではありまあせん複数あります。
エクセル学校内で検索してみたのですが見つけられませんでした。
乱筆悪文のためお見苦しい点も多いかと存じますが宜しくお願い致します。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
Dim dt() As Boolean, r As Range, c As Range, i As Long, flg As Boolean If Target.Count > 1 Then Exit Sub If Target.Column <> 2 Then Exit Sub Sheets("Sheet2").Cells.ClearContents Set r = Sheets("Sheet2").Range("A1:C1") ReDim dt(Range("A" & Rows.Count).End(xlUp).Row) For Each c In Intersect(UsedRange, Columns("A")) If Trim(c.Offset(, 2).Value) = "" Then If Not flg Then dt(temprow) = False temprow = c.Row dt(c.Row) = True flg = False End If If Trim(c.Offset(, 1).Value) <> "" Then dt(c.Row) = True: flg = True Next c If Not flg Then dt(temprow) = False For i = 0 To WorksheetFunction.CountA(Range("A:A")) If dt(i) = True Then r.Value = Range("A" & i).Resize(, 3).Value Set r = r.Offset(1) End If Next i End Sub (mm) 2017/06/07(水) 18:27
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.