2016-07-22 8 views
0

列A = 1で完全に動作するかどうかによってシート上の行を別のシートにコピーするvbaコードがあります。私は、ログを作成するためにすでに存在しているデータを上書きするのではなく、次に使用可能な行に貼り付けようとしています。ここに私がすでに持っているコードがありますが、次の利用可能な行に貼り付ける方法を見つけることができません。どんな助けでも大歓迎です!前もって感謝します!VBA-次の利用可能な行から別のシートにコピーして貼り付ける方法

Sub Log() 
Dim rng As Range 
Dim lastRow As Long 
Dim cell As Variant 
Dim count As Long 
count = 0 
    With ActiveSheet 

lastRow = .Range("A" & .Rows.count).End(xlUp).Row 
Set rng = .Range("A3:A" & lastRow) 

For Each cell In rng 
    If cell.Value = "1" Then 
     Range(cell.Offset(0, 1), cell.Offset(0, 6)).Copy 
     Range("'Log'!B3").Offset(count, 0).PasteSpecial xlPasteValues 
     count = count + 1 
    End If 
Next 
End With 
End Sub 
+0

Range(A1)の代わりに.Cells(row#、col#)を使い慣れていますか? – peege

+1

'Range(" 'Log'!B3 ")。オフセット(カウント、0).PasteSpecial xlPasteValues'は正しくない構文です。範囲( "A1")。オフセット(カウント、0).PasteSpecial xlPasteValues' –

+0

@peegeによって提供される答えは、魅力的に機能しました。ありがとうございました!私はちょうどプログラミングを学び始めており、これは私に多くの助けになります! –

答えて

0

ソースシートをループするだけで済みます。

この例では、ループのプロセスを理解するために、コメントの上に重い..です代わりに範囲.Cells(行、列)を使用してみてください。

このコードを使用してこの作業を行うには、いくつかの追加機能が必要です。

LASTROW機能

Function lastRow(sheet As String) As Long 

    lastRow = Sheets(sheet).Cells(Rows.Count, "A").End(xlUp).Row 'Using Cells() 

End Function 

LastCol機能

Function lastCol(sheet As String) As Long 

    lastCol = Sheets(sheet).Cells(2, Columns.Count).End(xlToLeft).Column 

End Function 

解決のためのコード:あなたが対象シートのヘッダがすでに設定していると仮定し、ターゲットとソースシートを共有同じ書式設定。

Sub Log() 

Dim source As String, target As String 
Dim sRow As Long, col As Long, tRow As Long 

'Declare Sheets 
source = "Sheet1" 
target = "Sheet2" 

'Loop through rows of source sheet 
For sRow = 2 To lastRow(source) 

    'Get current last row of Target Sheet 
    tRow = lastRow(target) + 1 

    'Meet criteria for Column A to = 1 on Source 
    If Sheets(source).Cells(sRow, 1) = "1" Then 
     'Copy each column of source sheet to target sheet in same order 
     For col = 1 To lastCol(source) 
      Sheets(target).Cells(tRow, col) = Sheets(source).Cells(sRow, col) 
     Next col 
    End If 

Next sRow 

End Sub 
関連する問題