この記事では、不完全なデータを新しいシートにコピーするマクロを作成します。

この記事の生データは、いくつかの不完全なレコードを含む給与データで構成されています。

ArrowMain

給与の詳細が欠落している従業員の記録をコピーしたいと思います。ボタンをクリックすると、不完全なレコードが「BlankRecords」シートに移動します。

ArrowOutput

ロジックの説明

この記事では、欠落しているレコードを「BlankRecords」シートにコピーするための「CopyEmptys」マクロを作成しました。給与列に空白のレコードがないかチェックします。空白のレコードが検出されると、そのレコードが「BlankRecords」シートにコピーされます。

コードの説明

intRowL = Cells(Rows.Count、1).End(xlUp).Row上記のコードは、最後のセルの行番号を取得するために使用されます。

IsEmpty(Cells(intRow、4))

上記のコードは、上記の給与が空かどうかを確認するために使用されます。

コードについては以下に従ってください

Range(.Cells(intRowT、1)、. Cells(intRowT、3))。Value = Range(Cells(intRow、1)、Cells(intRow、3))。Value上記のコードは、欠落しているコピーを取得するために使用されますメインシートから「BlankRecord」シートに記録します。
Option Explicit

Sub CopyEmptys()

'Declaring variables

Dim intRow As Integer, intRowL As Integer, intRowT As Integer

'Getting row number of last cell

intRowL = Cells(Rows.Count, 1).End(xlUp).Row

'Looping from 10th row to last cell

For intRow = 10 To intRowL



'Checking the fourth column whether it is empty

If IsEmpty(Cells(intRow, 4)) Then

With Worksheets(2)

'Getting row number of row next to last row

intRowT = .Cells(.Rows.Count, 1).End(xlUp).Row + 1



'Inserting data to "BlankRecords" sheet

.Range(.Cells(intRowT, 1), .Cells(intRowT, 3)).Value = _

Range(Cells(intRow, 1), Cells(intRow, 3)).Value

End With

End If

Next intRow

End Sub

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください