检查日期是否在x和y之间,如果是,请将数据复制到新电子表格

时间:2018-01-19 06:11:36

标签: excel vba excel-vba

我正在创建一个简单的应用程序,用于检查应用程序是否在电子表格中的日期x和日期y之间提交了#34;超级应用程序进度"如果是将数据复制到新的电子表格"应用程序"。

我目前的代码是:

Sub ApplicationSubmitted()

    Dim Source As Worksheet: Set Source = Worksheets("Super Applications Progress")
    Dim Target As Worksheet: Set Target = Worksheets("Application")

    Dim LastRow As Long
    Dim LastRow2 As Long
    Dim DateFrom As Date
    Dim DateTo As Date

    DateFrom = ActiveWorkbook.Worksheets("Application").Range("F3")
    DateTo = ActiveWorkbook.Worksheets("Application").Range("F5")
    LastRow = Source.Cells(Source.Rows.Count, "D").End(xlUp).Row

    Target.Rows("4:" & Rows.Count).ClearContents

    For i = 4 To LastRow

        If Source.Cells(i, 4) >= DateFrom And Source.Cells(i, 4) <= DateTo Then

            LastRow2 = Target.Cells(Target.Rows.Count, "D").End(xlUp).Row
            Target.Cells(LastRow2 + 1, 1) = Source.Cells(i, 1)
            Target.Cells(LastRow2 + 1, "B") = Source.Cells(i, "D")
            Target.Cells(LastRow2 + 1, 3) = Source.Cells(i, "F")

        End If

    Next i

End Sub

错误:

  • 输入的日期会带回客户列表,但只显示少数客户

  • 当我点击再次运行宏时,日期消失了(我知道这与Target.Rows("4:" & Rows.Count).ClearContents有关但是我不知道如何限制范围F2:F5

我要复制的单元格是:

  1. 客户名称来自超级应用程序进度列A 应用程序列A

  2. 从超级应用程序进度列D 提交至应用程序列B的日期

  3. 客户会员编号从超级应用程序进度列F 应用程序列C

  4. 我尝试使用这段代码执行:

    Target.Cells(LastRow2 + 1, 1) = Source.Cells(i, 1)
    
    Target.Cells(LastRow2 + 1, "B") = Source.Cells(i, "D")
    
    Target.Cells(LastRow2 + 1, 3) = Source.Cells(i, "F")
    

    我不确定代码中的差异是什么。我仍然是VBA的新手,并且非常愿意做我自己的研究,只是不完全确定是什么导致了这个错误。

0 个答案:

没有答案