繁体   English   中英

使用VBA Excel复制符合日期范围标准的数据行

[英]Copy of rows of data meeting date range criteria using VBA Excel

我正在尝试修改代码,我必须限制将结果复制到另一个工作表中。 现在,所有>今天的内容都被复制。 它将H列中的到期日期与今天的日期进行比较。 我想将结果限制为包括所有到期日期为>今天和<今天+ 60天的行。 我尝试了不同的方式和功能,例如定义结束日期,并使用了DateAdd函数。 什么都没用,请帮忙! 谢谢!

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 Range("H" & LSearchRow).Value > Now() AND _
  Range("H" & LSearchRow).Value < Now() + 60 Then

对于简单的字符串连接,并不是完全需要CStr转换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM