[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『貼り付ける行の値を別の列にです』(blaketto)
Sub 作成() Dim a(), i As Long, j As Long With Sheets("sheet1") For i = 6 To .Range("b" & Rows.Count).End(xlUp).Row If .Range("c" & i) >= 6211 And .Range("c" & i) <= 6231 Then j = j + 1 ReDim Preserve a(1 To 3, 1 To j) a(1, j) = .Range("b" & i).Value a(2, j) = .Range("c" & i).Value a(3, j) = .Range("g" & i).Value End If Next i If j > 0 Then _ Sheets("sheet15").Range("e23").Resize(j, 3).Value = Application.Transpose(a) End With End Sub 上記コードですが シート1のB列の6行目以降に科目を表示、 c列にはその科目のコードを表示。g列には金額 そのコードの6211から6231までのコード及び科目、金額をシート15のe23以降 に貼り付けるのですが,貼り付ける行が9行しかなく それより多いい場合は、L14以降に貼り付けたいのですが、 ご指導お願いします
< 使用 Excel:Excel2007、使用 OS:Windows7 >
改めます (blaketto) 2014/04/10(木) 17:04
仕切りなおし中のようですが、
データ量がそんなに多くなければ、配列を使用しなくても良いのでは? こんな構えでどうでしょう。 Sub 作成() Dim i As Long Dim r As Long: r = 23 Dim c As Long: c = 5 For i = 6 To Sheets("sheet1").Cells(Rows.Count, "B").End(xlUp).Row If Sheets("sheet1").Cells(i, "C").Value >= 6211 And Sheets("sheet1").Cells(i, "C").Value <= 6231 Then Sheets("Sheet15").Cells(r, c).Resize(1, 3).Value = Sheets("sheet1").Cells(i, "B").Resize(1, 3).Value If c = 5 And r = 31 Then r = 14: c = 12 Else r = r + 1 End If Next End Sub
(Mook) 2014/04/10(木) 19:15
Mook様 感謝です 使用させていただきます
(blaketto) 2014/04/11(金) 13:27
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.