Удалите все строки, которые не содержат дату в столбце A - PullRequest
0 голосов
/ 09 января 2020

У меня есть книга, в которой я хочу удалить все строки в столбце «Вставить MyStock» A, которые не содержат дату, а затем вставить формулу и автозаполнение в последнюю строку.

Код работает однако он не будет проходить через все строки. Он внезапно останавливается после 2-3 строк, и мне приходится запускать макрос несколько раз. Почему это так и как мне это исправить?

Это мой код:

Sub del_row_not_date()

Dim i As Integer
Dim MyStock As Worksheet
Dim Pivot As Worksheet
Dim Dta As Worksheet

Set MyStock = Sheets("Paste MyStock")
Set Formula = MyStock.Range("O1")
Set PasteFormula = MyStock.Range("N2")

With Application
    .EnableEvents = False
    .ScreenUpdating = False
End With

LastRow = MyStock.Cells(MyStock.Rows.Count, "A").End(xlUp).Row

For i = 2 To LastRow
    If IsDate(MyStock.Cells(i, 1)) = False Then
        MyStock.Cells(i, 1).EntireRow.Delete
    End If
Next

Formula.Copy
PasteFormula.PasteSpecial xlPasteAll

PasteFormula.AutoFill Destination:=MyStock.Range("N2:N" & LastRow)

With Application
    .EnableEvents = True
    .ScreenUpdating = True
End With   

End Sub

1 Ответ

0 голосов
/ 09 января 2020

При удалении l oop снизу вверх, иначе ваш l oop непреднамеренно пропустит строки после удаления:

For i = LastRow to 2 Step -1

Также используйте Long вместо Integer; см этот вопрос почему:

Dim i as Long
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...