この記事では、前の日付のデータを削除するマクロを作成します。このマクロはデータをチェックし、今日のデータを保持し、前の日付からすべてのデータを削除します。

この例の生データは、日付、エージェント名、およびその特定の日付における個々のエージェントの売上で構成されます。

ArrowRawData

マクロを実行するには、「メイン」シートのボタンをクリックするか、ショートカットキーAlt + F8を押してマクロを実行することもできます。

マクロは、以前の日付のすべてのレコードを削除します。 2016年12月14日にこのマクロを実行すると、出力にはその日付のレコードのみが反映されます。

ArrowAfterRunningMacro

[#_GoBack] ##ロジックの説明この例では、「RemovePreviousData」マクロを作成しました。このマクロは逆FORループを使用します。これは、ループが反対方向に実行されることを意味します。ループは最後の行から始まり、一番上の行に向かって移動します。

逆ループを使用する理由は、通常のFORループを使用した場合、各行が削除された後、データに存在するレコードが上方にシフトし、行が削除されるたびに位置が変わるためです。そのため、これに対抗するために、逆ループを使用しました。

逆方向にループするために、FORループとともにStepステートメントを使用しました。 FORループは最後の行から始まり、11 ^ th ^行に向かってループします。

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

Option Explicit

Sub RemovePreviousData()

Dim Counter, LastRow As Integer

'Finding the row number of last row

LastRow = ActiveSheet.Range("A1").SpecialCells(xlLastCell).Row

'Looping from last row to 11th row

For Counter = LastRow To 11 Step -1

If Cells(Counter, 1).Value < Date Then

'Deleting the row

Rows(Counter).Delete

End If

Next Counter

End Sub

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

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