只有当列中的值满足一定的标准时才将值插入到列中

我有一列数据的date在列I中。我想复制粘贴从单元格Z1的值到列S单元格在同一行中列I,只有当列I中的date等于或之后date在单元格Y1。 例如,如果I9是2017年3月14日,而Y1是2017年10月1日,则在S9中复制Z1中的值。 我认为If Then语句是必要的,但不断收到错误消息。

If Range("I:I").Select >= Range("Y1").Value Then Range("S:S") = Range("Z1").Value 

在你的代码中,你正试图比较Variant()Date 。 这将永远不会工作。

因为VBA没有LINQ,所以你不能为你的需求编写这个紧凑的代码。

对于date和货币,始终使用Value2


 Sub test() Dim rngCell As Range For Each rngCell In Sheet1.UsedRange.Columns(9).Cells If rngCell.Value2 >= Range("Y1").Value2 Then Sheet1.UsedRange.Cells(rngCell.Row, 2).Value = Sheet1.UsedRange.Cells(rngCell.Row, 1).Value End If Next End Sub 

尝试这个 –

 IF($I1 > $Y$1,$S1 = $Z1,"") 

将此公式拖到所需的位置。 希望这可以帮助。