使用VBA Excel复制符合日期范围标准的数据行
我正试图修改代码,但我必须将结果复制到另一个工作表中。现在一切都被复制到>今天。它将H列中的到期日期与今天的日期进行比较。我想将结果限制为包括所有包含过期日期>今天和<今天+60天的行。我尝试过不同的方法和函数,比如定义结束日期和使用DateAdd函数。什么都没用,请帮帮我!谢谢大家!使用VBA Excel复制符合日期范围标准的数据行,vba,excel,date-arithmetic,Vba,Excel,Date Arithmetic,我正试图修改代码,但我必须将结果复制到另一个工作表中。现在一切都被复制到>今天。它将H列中的到期日期与今天的日期进行比较。我想将结果限制为包括所有包含过期日期>今天和Now()和_ 范围(“H”和LSearchRow).Value
Sub SearchForExpiryDate()
Dim LSearchRow As Integer
Dim LCopyToRow As Integer
On Error GoTo Err_Execute
'Start search in row 8
LSearchRow = 8
'Start copying data to row 2 in Expiring MOCs (row counter variable)
LCopyToRow = 2
While Len(Range("A" & CStr(LSearchRow)).Value) > 0
'If value in column H > Today, copy entire row to "Expiring_MOC"
If Range("H" & CStr(LSearchRow)).Value > Now() Then
'Select row in MOC_MASTER to copy
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Copy
'Paste row into "Expiring_MOCs" in next row
Sheets("Expiring_MOCs").Select
Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
ActiveSheet.Paste
'Move counter to next row
LCopyToRow = LCopyToRow + 1
'Go back to 'MOC MASTER' to continue searching
Sheets("MOC_MASTER").Select
End If
LSearchRow = LSearchRow + 1
Wend
'Position on cell A3
Application.CutCopyMode = False
Range("A3").Select
MsgBox "All matching data has been copied."
Exit Sub
Err_Execute:
MsgBox "An error occurred."
End Sub
如果以下线路在旧条件下工作
If Range("H" & CStr(LSearchRow)).Value > Now() Then
。。。将其更改为包括新条件(60天限制)
If范围(“H”&LSearchRow).Value>Now()和_
范围(“H”和LSearchRow).Value
对于简单的字符串连接,
CStr
转换不是完全必要的。你好,谢谢。我已经试过了,但它返回的行包含从现在起1年的到期日期,而不是所需的2个月范围。谢谢你!如果是这种情况,那么您可能会有替换的MDY与DMY的日期。dateadd(“d”,60,now())
是否可以工作,而不管日期样式如何,而不是now()+60
?如果now()+60
可以工作。如果日期是错误的,那么它们就是错误的。它们需要正确导入或手动更正。@Jeeped谢谢,我不太处理日期,我想知道它是否有影响。
If Range("H" & LSearchRow).Value > Now() AND _
Range("H" & LSearchRow).Value < Now() + 60 Then