我正在尝试在sheet1中编写一个代码,该代码将根据sheet2中的日期添加最近的日期。
Sheet1 Sheet2
A A
50 01/02/2019 76 01/02/2019
51 01/03/2019 77 01/03/2019
52 01/04/2019 78 01/04/2019
79 01/05/2019
80 01/06/2019
我曾考虑过复制整个列并粘贴它,但这将是不专业的,数据可能是数千行。
而是如何检查工作表2(ColumnA)中不在工作表1中的最近日期并将其复制?
到目前为止,这是我的代码
Sub Addrecentmonth()
Dim M1 As Worksheet
Dim FinalRowM1 As Long
Dim FinalRowPM As Long
Dim ProbabilityModel As Worksheet
Set M1 = ActiveWorkbook.Worksheets("M1")
Set PM = ActiveWorkbook.Worksheets("ProbabilityModel")
FinalRowM1 = M1.Range("A" & M1.Rows.Count).End(xlUp).Row
FinalRowPM = PM.Range("A" & M1.Rows.Count).End(xlUp).Row
If PM.Range("A" & FinalRowPM).Value <> M1.Range("A" & FinalRowM1).Value Then
M1.Range("A" & FinalRowM1).Select
PM.Cells(Rows.Count, "A").End(xlUp).Offset(1). _
PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
End If
End Sub
我想出了如何在最后使用的单元格之后粘贴目标,但是我找不到从另一张表复制最近日期的方法。
如果像您的示例中那样将日期从最旧到最新进行排序,则可以选择Sheet2的最后一个单元格,其中日期小于Sheet1的最后一个单元格。
这段代码可以做到:
Dim currentDate As Long
Dim Scanner As Range
currentDate = Sheet1.Range("A" & Sheet1.Rows.Count).End(xlUp).Value
'currentDate contains the value of Sheet1 last cell'
Set Scanner = Sheet2.Range("A" & Sheet2.Rows.Count).End(xlUp)
'Here, Scanner is the last cell of Sheet2'
While Scanner.Value > currentDate
'Scanner goes upwards until it finds the current date'
Set Scanner = Scanner.Offset(-1, 0)
Wend
然后,您可以将Scanner下的所有单元格复制到Sheet1的末尾。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句