これは、使用しているシートを反映するようにシート番号を変更するだけです(私は、シート1をデータと共に使用し、シート3をサマリーデータを配置する場所に使用しています)。これらのシート名は、エクセルの一番下のタブでコード化されたバージョンではなく自分の名前:
Sub foo()
LastRow = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row 'change Sheet1 to your sheet ie. Sheets("Sheet1")
For i = 2 To LastRow
If Sheet1.Cells(i, 4).Value = "" Then
NextEmptyRow = Sheet3.Cells(Sheet3.Rows.Count, "A").End(xlUp).Row + 1
Sheet3.Cells(NextEmptyRow, 1).Value = Sheet1.Cells(i, 1).Value
Sheet3.Cells(NextEmptyRow, 2).Value = Sheet1.Cells(i, 2).Value
End If
Next i
End Sub
UPDATE:
は、Excelの一番下のタブで自分の名前でシートを参照しているなら、あなたは、コードを変更する必要がありますこれ以上のもの:
Sub foo()
Dim ws1 As Worksheet: Set ws1 = Sheets("Sheet1") 'change the name of your sheets here
Dim ws2 As Worksheet: Set ws2 = Sheets("Sheet3")
LastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
If ws1.Cells(i, 4).Value = "" Then
NextEmptyRow = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row + 1
ws2.Cells(NextEmptyRow, 1).Value = ws1.Cells(i, 1).Value
ws2.Cells(NextEmptyRow, 2).Value = ws1.Cells(i, 2).Value
End If
Next i
End Sub
5行目にメッセージオブジェクトが必要な実行時エラーが発生します。私はこれに新しいです。 –
あなたはあなたがスプレッドシートにSheet3を持っていない可能性があるので、あなたが得ているエラーです。あなたのスプレッドシートにある実際のものに名前を変更すると、コードが期待どおりに動作するようになります。 – Xabier
データはシート1にあり、サマリーは自分のコードに従って作成したシート3に移動します。 –