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

VBAの勉強中です。ボタンを押すとWorksheets("管理番号")の情報をworksheets("結果")へ
転記するようにしてるんですが、この状態のままでは行番号11へのみの入力となっていしまいます。

これをボタンを押すごとに行番号11以降(古いデータの下)の空白のセルへ
入力するようにするにはどうすればよいでしょうか?教えていただけたら幸いです。


Option Explicit


Sub DATA()


Dim momo
Dim ko

Worksheets("結果").Range("D11").Value = Worksheets("管理番号").Range("F5").Value
Worksheets("結果").Range("B11").Value = Date
Worksheets("結果").Range("C11").Value = Time


ko = 11

For momo = 16 To 9999

If Worksheets("管理番号").Range("B" & momo).Value = Worksheets("管理番号").Range("F5").Value Then
Worksheets("結果").Range("E" & ko).Value = Worksheets("管理番号").Range("D" & momo).Value


ko = ko + 1


End If

Next

End Sub

宜しくお願いいたします。

質問者からの補足コメント

  • うれしい

    ご回答ありがとうございます。確認しましたところ、
    情報は問題なく転記されますが、やはりWorksheets("結果")の行番号11(BCDE)のところで
    情報が上書き更新されてしまいます。
    これを上書きされることなく、Worksheets("管理番号")にあるボタンを押すごとに
    Worksheets("結果")の行番号12、13・・・と順に転記するようにしたいです。
    再度回答ただけたら幸いです。宜しくお願いいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/06/20 22:58

A 回答 (2件)

ん~と


>Worksheets("管理番号")にあるボタンを押すごとに
>Worksheets("結果")の行番号12、13・・・と順に転記するようにしたいです。
っと云う事は
ko = 11

ko = Worksheets("結果").Range("E" & Rows.Count).End(Xlup).Row+1
としてみては?

参考までに、シートを変数に入れて、コードを省略してみました。

Sub DATA()
Dim momo
Dim ko
Dim ws As Worksheet
Set ws=Worksheets("結果")
ko = ws.Range("E" & Rows.Count).End(Xlup).Row+1
For momo = 16 To 9999
If Range("B" & momo).Value = Range("F5").Value Then
ws.Range("E" & ko).Value = Range("D" & momo).Value
ws.Range("D" & ko).Value = Range("F5").Value
ws.Range("B" & ko).Value = Date
ws.Range("C" & ko).Value = Time
ko = ko + 1
End If
Next
End Sub
と省略してみました。
    • good
    • 1
この回答へのお礼

助かりました

ご回答ありがとうございます。

先ほど確認したところ、教えていただいたコードで
問題なく最終行の下へと追加していくことができました!

勉強をはじめたので、所々呪文のようですが
コードの省略とても参考になりました。

これから自由に組んでいけるよう挫けず頑張ります。
今回はいろいろと教えていただき、ありがとうございました。

お礼日時:2015/06/21 08:51

勉強中と云う事で、元のコードを生かして編集してみました。



Sub DATA()
Dim momo
Dim ko
ko = 11
For momo = 16 To 9999

If Worksheets("管理番号").Range("B" & momo).Value = Worksheets("管理番号").Range("F5").Value Then
Worksheets("結果").Range("E" & ko).Value = Worksheets("管理番号").Range("D" & momo).Value
Worksheets("結果").Range("D" & ko).Value = Worksheets("管理番号").Range("F5").Value
Worksheets("結果").Range("B" & ko).Value = Date
Worksheets("結果").Range("C" & ko).Value = Time
ko = ko + 1
End If

Next

End Sub
ご希望の結果が得られるようであれば、もう少しスマートな方法を
回答いたします。
この回答への補足あり
    • good
    • 1

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