2016-08-21 10 views
0

Till Checkのワークシートを作成しようとすると、すべてのデータが手動で入力され、そのデータが別のシートにコピーされて今後参照できるようになりました。しかし、ちょっとした問題は、そのデータを複数回コピーしていることです。行ごとに1つのエントリだけでなく、入力されたデータが5行あります。Excel別のシートにデータをコピーする

単一行には、日付、現金販売、Eftpos Sales、合計、チェック済みの5つの異なるエントリが必要です。

Sub Button2_Click() 

    Dim rng As Range 
    Dim i As Long 
    Dim a As Long 
    Dim rng_dest As Range 
    Application.ScreenUpdating = False 

    i = 1 

    Set rng_dest = Sheets("Till Reports").Range("A:D") 


    ' Find first empty row in columns D:G on sheet Invoice data 

    Do Until WorksheetFunction.CountA(rng_dest.Rows(i)) = 0 

    i = i + 1 

    Loop 


    Set rng = Sheets("Till Checks").Range("E21:F26") 


    ' Copy rows containing values to sheet Till Checks 


    For a = 1 To rng.Rows.Count 


    If WorksheetFunction.CountA(rng.Rows(a)) <> 0 Then 


     rng_dest.Rows(i).Value = rng.Rows(a).Value 

     Sheets("Till Reports").Range("D" & i).Value = Sheets("Till Checks").Range("F24").Value 
     Sheets("Till Reports").Range("A" & i).Value = Sheets("Till Checks").Range("E21").Value 
     Sheets("Till Reports").Range("B" & i).Value = Sheets("Till Checks").Range("F22").Value 
     Sheets("Till Reports").Range("C" & i).Value = Sheets("Till Checks").Range("F23").Value 
     Sheets("Till Reports").Range("E" & i).Value = Sheets("Till Checks").Range("F25").Value 

     i = i + 1 

    End If 
+1

メインワークシートと要約シートの一部を掲載できますか? – atclaus

答えて

0

For a = 1 To rng.Rows.Countです。それを取り除くと、それは一度行うべきです。

+0

ありがとうございました。今度はうまくいきます - 何をしているのか理解しようとしている年月を見ています - 前回のスクリプトを修正しました。次回は再び書き直すと思います。 – Kezzar

関連する問題