[[20151121160119]] 『for構文でシート間の追記』(はっさく) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『for構文でシート間の追記』(はっさく)

シートからシートへ、for構文でデータを転記したいです。
具体的には、「メモ」シートの最終行の次の行に、
「データ」シートの2行目以降の全行を特定の列のみ追加していきたいのですが、
例えば「データ」シートに100行あったとしても、最後の100行目しか追加されず、
「メモ」シートには最終行の次に1行追加されるだけです。どこがおかしいのでしょうか。

Private Sub CommandButton1_Click()

    lastrow1 = Worksheets(メモ").Cells(Rows.Count, 1).End(xlUp).Row 
    lastRow2 = Worksheets("メモ").Cells(Rows.Count, 2).End(xlUp).Row

    For i = 2 To Worksheets("データ").Cells(Rows.Count, 1).End(xlUp).Row

        Worksheets("メモ").Cells(lastrow1 + 1, "A").Value = "2015"
        Worksheets("メモ").Cells(lastRow2 + 1, "B").Value = Worksheets("データ").Cells(i, "K").Value

    Next i

End Sub

< 使用 Excel:Excel2007、使用 OS:Windows7 >


lastrow1とlastrow2どちらも固定になっているので、同じところにしかコピーされません。
ループの中で、更新する必要があります。
 例えば
 lastrow1=lastrow1+1
 のような感じで。

でも、1行ずつでなく、まとめてコピーのほうがよくないですか?

(マナ) 2015/11/21(土) 16:44


 もう1つ気になることがあります。

 メモシートのデータ最終行ですが、A列、B列 それぞれ、別に把握していますよね。
 ということは A列最終が 100行目、B列最終行が200行目 だとすると、データシートから取り込んだ時に

 A101 に 2015 、B201 に データシートのK列の値
 A102 に 2015 、B202 に データシートのK列の値
 ・
 ・

 こんなようになりますが、いいのですか??

 いやいや、A列もB列も最終行は同じだということなら lastrow1,lastrow2 の区別は必要ないですよね?

(β) 2015/11/21(土) 16:52


lastrow1 = Worksheets("メモ").Cells(Rows.Count, 1).End(xlUp).Row + 1

上記のようにしてみたのですが、最終行の次の行が空白行となり、
その次の行にデータシートの最終行のみが追加されてしまいました。
この記述はおかしいでしょうか。

メモシートでのA列とB列は最終行は同じです。区別必要ないのですね。
大変素人のため、わからないままいろいろと試してしまっています。

(はっさく) 2015/11/21(土) 17:13


 Private Sub CommandButton1_Click()
    Dim i As Long
    Dim lastrow As Long

    lastrow = Worksheets("メモ").Cells(Rows.Count, 1).End(xlUp).Row + 1

    For i = 2 To Worksheets("データ").Cells(Rows.Count, 1).End(xlUp).Row

        Worksheets("メモ").Cells(lastrow, "A").Value = "2015"
        Worksheets("メモ").Cells(lastrow, "B").Value = Worksheets("データ").Cells(i, "K").Value
        lastrow = lastrow + 1
    Next i

 End Sub

 ただし、マナさんご指摘の通り、本件はループなしでまとめて転記がいいですよ。

(β) 2015/11/21(土) 17:20


βさんのご指示通りで成功しました。感涙です。
ループしない方が良い場合もあるのですね。
ともかく、マナさん、βさん、ありがとうございました。

(はっさく) 2015/11/21(土) 17:38


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.