我有一个工作簿,我想删除工作表"Paste 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发布于 2020-01-10 01:14:43
删除时,请自下而上循环,否则删除后您的循环会无意中跳过行:
For i = LastRow to 2 Step -1另请使用Long而不是Integer;请参阅this question原因:
Dim i as Longhttps://stackoverflow.com/questions/59669057
复制相似问题