【发布时间】:2019-09-25 20:08:53
【问题描述】:
Sheet1 全年累积工作并提供建议。
Sheet2 累积已完成的推荐。
Sheet1 上任何没有匹配的行都需要跟进。重复项在第 14 行突出显示。由于第 14 行的作业发生在 2019 年 1 月 24 日,因此无法在该日期之前完成建议。
这是我用于 MatchColums 的代码;
Sub MatchColums()
Dim i, total, fRow As Integer
Dim found As Range
total = Worksheets(1).Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To total
answer1 = Worksheets(1).Range("C" & i).Value
Set found = Worksheets(2).Columns("C:C").Find(what:=answer1) 'finds a match
If found Is Nothing Then
Worksheets(1).Range("H" & i).Value = "NO MATCH"
Else
fRow = Sheets(2).Columns("C:C").Find(what:=answer1).Row
Worksheets(1).Range("I" & i).Value = Worksheets(2).Range("A" & fRow).Value
Worksheets(1).Range("J" & i).Value = Worksheets(2).Range("B" & fRow).Value
Worksheets(1).Range("K" & i).Value = Worksheets(2).Range("C" & fRow).Value
Worksheets(1).Range("L" & i).Value = Worksheets(2).Range("D" & fRow).Value
Worksheets(1).Range("M" & i).Value = Worksheets(2).Range("E" & fRow).Value
Worksheets(1).Range("N" & i).Value = Worksheets(2).Range("F" & fRow).Value
Worksheets(1).Range("O" & i).Value = Worksheets(2).Range("G" & fRow).Value
End If
Next i
End Sub
为了防止重复,我添加了以下代码;
Sub CompareDates()
If Sheet1.Range("A1") < Sheet2.Range("A1") Then
Run "MatchColums"
End If
End Sub
我没有收到任何错误消息,但我的 CompareDates 宏似乎不起作用。我尝试先运行 matchcolums 宏,但再次得到以下相同的结果;
【问题讨论】:
-
这些是实际日期还是看起来像日期的文本?他们是左对齐的吗?每张纸上的
Range("A1")是什么? -
如果没有输入样本,很难看出发生了什么或错误。只是代码的简单视图,问题是如果您有重复的日期,那么您将得到重复的结果。在 H 列有“NO MATCH”的单元格中,I 列有文本。这似乎是一个意外的结果。你能上传一个输入样本吗?
-
BigBen,这些都是格式化的日期。是的,他们是有道理的。每张纸上的 A1 作为标题,后跟日期。
-
大卫,是的,我将编辑我的帖子以添加 Sheet2。
标签: excel vba date-comparison