我正在创建一个简单的应用程序,用于检查应用程序是否在电子表格中的日期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
我要复制的单元格是:
客户名称来自超级应用程序进度列A 到应用程序列A
从超级应用程序进度列D 提交至应用程序列B的日期
客户会员编号从超级应用程序进度列F 到应用程序列C
我尝试使用这段代码执行:
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的新手,并且非常愿意做我自己的研究,只是不完全确定是什么导致了这个错误。