【发布时间】:2020-02-15 21:46:16
【问题描述】:
我正在尝试在 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
我想出了如何在最后使用的单元格之后粘贴目标,但我找不到从另一张表中复制最近日期的方法。
【问题讨论】:
-
所以基本上有两列:升序数字和每行日期?您只是想避免从表 2 中转移日期已经存在于表 1 中的行,而不考虑第一列中的数字?还是组合必须是唯一的?
-
示例中显示的数字 (76,77,78...) 是行号引用,而不是单元格值或列!我只想复制包含日期的单元格(A79、A80.... 到最后使用的单元格)
-
好吧,我先看看你的代码。顺便说一句,我刚刚发现,你忘了声明“PM”变量。我想,它应该像“M1”。
-
哦,是的,谢谢您的通知。我试图弄清楚,如果我们像这样应用 smtg:从 A 列中使用的最后一个单元格复制到 (X),X 将使用 LOOKUP 声明为范围或字符串,其中查找公式将转到表 1 和找到 A 列中使用的最后一个单元格,然后按其值 (01/04/2019) 对其进行寻址。这行得通吗?
-
嗯...在两张表中,数据都按照您的示例中的升序填充?日期越新越接近底部?如果是这样,您可以检查 sheet1 中的最新条目(在您的示例中为“01/04/2019”),然后转到 sheet2 并选择单元格,如果日期大于“01/04/2019”,然后将此单元格中的所有内容复制到底部并将其粘贴到 sheet1 中。
标签: excel vba copy-paste