- ベストアンサー
(1)シート1のA1に5と入力
(1)シート1のA1に5と入力 (2)シート1のB列に入れた数値入力 ↓ (3)シート2のE列にシート1の数値を反映(10と入力すればJ列) とするにはどのようなマクロを組めばいいでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Worksheets("シート1").Range("B:B").Copy Worksheets("シート2").Cells(1, Range("A1").Value).PasteSpecial Application.CutCopyMode = False です
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
この質問では意味が判りにくいよ。質問する前に、もっと読み直して、判りやすく正確にして。 プログラムを考えるのは論理的な作業で、そんな情況ではない。 ーー シート2の反映列は >シート1のA1に5と入力 >10と入力すればJ列) 5の場合はE列に、10と入力すればJ列のようにA1の値で列を決めるのか。 ーー 行は >シート2のE列にシート1の数値を反映 の行は >シート1のB列に入れた数値入力 という事で、シート1と同じ行に入れるのか ーーー VBAにはイベントという仕組みがある。 これを使うのかどうか? ーーー 使うならシート1のタブにおいて右クリック。「コードの表示」を択ぶ。 出てくる画面で Private Sub Worksheet_Change(ByVal Target As Range) End Sub を択び、 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then 'B列の入力に限定して Worksheets("Sheet2").Cells(Target.Row, Worksheets("Sheet1").Range("a1")) = Target End If End Sub でどう。シート1はシート名Sheet1にしている
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 外していたらごめんなさい。 Sub test() Dim i, j As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("sheet1") Set ws2 = Worksheets("sheet2") For i = 1 To ws1.Cells(Rows.Count, 1).End(xlUp).Row j = ws1.Cells(i, 2) ws2.Cells(Rows.Count, j).End(xlUp).Offset(1) = ws1.Cells(i, 1) Next i End Sub こんな感じですかね? 以上、参考になれば幸いです。m(__)m
お礼
ありがとうございます!!!
お礼
ありがとうございます!!!