我如何将在不同工作表中添加的最新单元格值复制到活动工作表中?

问题描述 投票:0回答:1
   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 

[大家好,我正在尝试在sheet1中编写一个代码,该代码将根据sheet2中的日期添加最近的日期。我曾考虑过复制整列并将其粘贴,但这将是不专业的,数据可能会成千上万行。因此,我要做的是检查工作表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

我想出了如何在上次使用的单元格之后粘贴目标,但我找不到从另一张表复制最近日期的方法

excel vba copy-paste
1个回答
0
投票

如果您按照示例中的顺序将日期从最旧到最新进行排序,则可以选择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

然后您可以将扫描仪下面的所有单元复制到Sheet1的末尾。

© www.soinside.com 2019 - 2024. All rights reserved.