Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 08 мая 2019, 19:32

Название: Excel VBA Макросы: Удаление строк содержащих дату.
Отправлено: Посетитель от 08 мая 2019, 19:32
В колонке 15 значения #N/A и даты. Нужно удалить все строки, в которых есть дата в колонке 15.

Это не работает:

    Dim LastRow As Long, i As Long
    LastRow = Cells(Rows.Count, 15).End(xlDown).Row
    For i = LastRow To 2 Step -1
         If Cells(i, 2) = Date  Then Rows(i).Delete
    Next

Помогите написать правильный код.

[вложение удалено администратором]
Название: Re: Excel VBA Макросы: Удаление строк содержащих дату.
Отправлено: Администратор от 08 мая 2019, 19:46
Date - возвращает текущую дату. То есть вы сравнивали ячейку с текущей датой.
Ваш макрос неправильно искал последнюю строку.
И ваш макрос проверял не столбец O, а столбец B.

Макрос
Sub Макрос()

    Dim LastRow As Long, i As Long
   
    ' Отключение монитора, чтобы ускорить макрос.
        ' Ещё можно отключить пересчёт формул.
    Application.ScreenUpdating = False
   
    ' Удаление строк, в которых в столбце O дата.
    LastRow = Cells(Rows.Count, "O").End(xlUp).Row
    For i = LastRow To 2 Step -1
         If IsDate(Cells(i, "O")) Then Rows(i).Delete
    Next
   
    ' Включение монитора.
    Application.ScreenUpdating = True
   
End Sub
[свернуть]
Название: Re: Excel VBA Макросы: Удаление строк содержащих дату.
Отправлено: Посетитель от 09 мая 2019, 18:01
Спасибо! Очень помогли!