繁体   English   中英

如何将范围内添加的最新单元格值从不同工作表复制到活动工作表?

[英]How can I copy most recent cells value added in a range from a different sheet to the active one?

我正在尝试在 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 

我想复制整列并粘贴它,但这会不专业,数据可能有数千行。

相反,我如何检查 sheet2 (ColumnA)中不在 sheet1 中的最近日期并复制它们?

到目前为止,这是我的代码

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 的末尾。

暂无
暂无

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

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