dポイントプレゼントキャンペーン実施中!

エクセルのVBAマクロについて、添付のような物を考えているのですが、宜しくお願いします。


B3~E15に関数を入れて、TRUE となったデーターを表示
させるまでは出来たのですが、このデーターをF~I列へ上から順に
(空白行は詰めて)順次記録して行きたいのです。

B3~E15に表示させるデーターは、別シートから抽出し、
切り替えますので、結果を表示させたら、ボタンを押して記録し、
再度別データーを入れたらその下に記録して行くような仕組み
を考えております。

宜しくお願いします。

「エクセルのVBAマクロについて」の質問画像

A 回答 (2件)

Sub try()


Dim r As Range, rr As Range

'もしF3が空白なら
If Range("F3").Value = "" Then
'書き出す位置はF3に
Set rr = Range("F3")
Else
'空白でなければ書き出す位置はF列の最終行の1つ下
Set rr = Cells(Rows.Count, 6).End(xlUp).Offset(1)
End If

'B3~B15を順次検索して
For Each r In Range("B3:B115")

'B列に値があれば
If r.Value <> "" Then
'B~E列の値をF~I列に上詰めで代入していく
rr.Resize(, 4).Value = r.Resize(, 4).Value
'書き出したら、書き出すF列を1行下げる
Set rr = rr.Offset(1)
End If

Next

Set rr = Nothing
End Sub

ご参考程度に。
    • good
    • 0
この回答へのお礼

ありがとうございました。

早速試してみます。

お礼日時:2009/08/03 01:11

Sub test()


Dim i As Long
For i = 3 To Range("b65536").End(xlUp).Row
If Cells(i, 2).Value <> "" Then Cells(Range("g65536").End(xlUp).Offset(1).Row, 6).Resize(1, 4).Value = Cells(i, 2).Resize(1, 4).Value
Next
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!