我正在尝试将基于日期的行移动到另一张纸。 代码有效并且行可以正确移动,但前提是所有字段都填写了日期。
代码如下。 预先感谢。
Sub MoveBasedOnValue5()
lastrowcurrent = Sheets("Verlopen Keuring").Range("A" & Rows.Count).End(xlUp).Row
lastrowpost = Sheets("Afgehandeld").Range("A" & Rows.Count).End(xlUp).Row
For x = lastrowcurrent To 2 Step -1
If Sheets("Verlopen keuring").Range("F" & x) >= Date And Sheets("Verlopen keuring").Range("G" & x) >= Date And Sheets("Verlopen keuring").Range("H" & x) >= Date Then
Sheets("Verlopen keuring").Range("A" & x).EntireRow.Cut Sheets("Afgehandeld").Range("A" & lastrowpost + 1)
Sheets("Verlopen keuring").Range("A" & x).EntireRow.Delete
lastrowpost = lastrowpost + 1
End If
Next
End Sub
您可以将
EVALUATE
用于工作表函数,如下所示:
If Evaluate("=if(or('Verlopen keuring'!F" & x & ":H" & x & ">=Now()),true,false)") Then
您应该使用 OR IsEmpty():
Sub MoveBasedOnValue5()
lastrowcurrent = Sheets("Verlopen Keuring").Range("A" & Rows.Count).End(xlUp).row
lastrowpost = Sheets("Afgehandeld").Range("A" & Rows.Count).End(xlUp).row
For x = lastrowcurrent To 2 Step -1
If (Sheets("Verlopen keuring").Range("F" & x) >= Date Or IsEmpty(Sheets("Verlopen keuring").Range("F" & x)) _
And (Sheets("Verlopen keuring").Range("G" & x) >= Date Or IsEmpty(Sheets("Verlopen keuring").Range("G" & x))) _
And (Sheets("Verlopen keuring").Range("H" & x) >= Date Or IsEmpty(Sheets("Verlopen keuring").Range("H" & x)))) Then
Sheets("Verlopen keuring").Range("A" & x).EntireRow.Cut Sheets("Afgehandeld").Range("A" & lastrowpost + 1)
Sheets("Verlopen keuring").Range("A" & x).EntireRow.Delete
lastrowpost = lastrowpost + 1
End If
Next
End Sub