Microsoft ExcelでVBAを使用して新しいシートに不完全なデータをコピーします
この記事では、不完全なデータを新しいシートにコピーするマクロを作成します。
この記事の生データは、いくつかの不完全なレコードを含む給与データで構成されています。
給与の詳細が欠落している従業員の記録をコピーしたいと思います。ボタンをクリックすると、不完全なレコードが「BlankRecords」シートに移動します。
ロジックの説明
この記事では、欠落しているレコードを「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]までご連絡ください