В этой статье мы создадим макрос для удаления данных за предыдущие даты. Этот макрос проверяет данные, сохраняет сегодняшние данные и удаляет все данные за предыдущие даты.

Исходные данные в этом примере состоят из даты, имени агента и продаж отдельного агента в эту конкретную дату.

ArrowRawData

Чтобы запустить макрос, нажмите кнопку на «Основном» листе, или его даже можно запустить, нажав сочетания клавиш Alt + F8.

Макрос удалит все записи с предыдущими датами. Поскольку мы запускаем этот макрос 14 декабря 2016 г., в выходных данных будут отражены записи только для этой даты.

ArrowAfterRunningMacro

[_GoBack] # Логическое объяснение В этом примере мы создали макрос RemovePreviousData. Этот макрос использует обратный цикл FOR, что означает, что цикл выполняется в противоположном направлении. Петля начинается с последнего ряда и продвигается к верхнему ряду.

Причина использования обратного цикла заключается в том, что если бы мы использовали обычный цикл FOR, то после каждого удаления строки записи, присутствующие в данных, смещались бы вверх, что приводило к изменению позиционирования при каждом удалении строки. Чтобы противостоять этому, мы использовали обратный цикл.

Мы использовали оператор Step вместе с циклом FOR для цикла в обратном направлении. Цикл FOR начинается с последнего ряда и продолжается до 11 ^ го ^ ряда.

Пожалуйста, введите код ниже

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]