Vba 如何将一个单元格中的公式应用于整个列

Vba 如何将一个单元格中的公式应用于整个列,vba,Vba,E列F列 开始时间结束时间 12:16:56 12:16:57 12:16:57 12:16:59 12:18:50 12:19:04 12:20:13 12:20:13 12:20:32 12:20:33 12:20:42 12:20:49 12:31:16 12:31:17 12:37:32 12:37:47 12:45:41 12:45:43 12:48:36 12:48:36 12:48:44 12:48:46 For i = 2 To lastrow - 1 If Range("E

E列F列
开始时间结束时间
12:16:56 12:16:57
12:16:57 12:16:59
12:18:50 12:19:04
12:20:13 12:20:13
12:20:32 12:20:33
12:20:42 12:20:49
12:31:16 12:31:17
12:37:32 12:37:47
12:45:41 12:45:43
12:48:36 12:48:36
12:48:44 12:48:46

For i = 2 To lastrow - 1
  If Range("E" & i+1).Value = Range("F" & i+1).Value Then
     Range("E" & i+1).Value = Range("F" & i).Value
  End If
Next i
如果结束时间等于开始时间,则使用前一个结束时间作为开始时间。例如,在图片中,如果E5=F5,则E5=F4。我使用了此公用项,但仅在特定单元格中有效。如何将其应用于整个专栏?我试过如果…那么…声明如下,不起作用。谢谢

For i = 2 To lastrow - 1

  If Range("E3").Value = Range("F3").Value Then
     Range("E3").Value = Range("F2").Value
   End If
Next i
预期产出:

E列F列
开始时间结束时间
12:16:56 12:16:57
12:16:57 12:16:59
12:18:5012:19:04
12:19:04 12:20:13
12:20:32 12:20:33
12:20:42 12:20:49
12:31:16 12:31:17
12:37:32 12:37:47
12:45:4112:45:43
12:45:43 12:48:36
12:48:44 12:48:46

无需循环:

For i = 2 To lastrow - 1
  If Range("E" & i+1).Value = Range("F" & i+1).Value Then
     Range("E" & i+1).Value = Range("F" & i).Value
  End If
Next i
With Worksheets("Sheet1") ' Change to your sheet name
    .Range("E3:E" & lastrow - 1).Value = _
        .Evaluate("IF(E3:E" & lastrow - 1 & " = F3:F" & lastrow - 1 & ",F2:F" & _
        lastrow - 2 & ",E3:E" & lastrow - 1 & ")")
End With
无需循环:

With Worksheets("Sheet1") ' Change to your sheet name
    .Range("E3:E" & lastrow - 1).Value = _
        .Evaluate("IF(E3:E" & lastrow - 1 & " = F3:F" & lastrow - 1 & ",F2:F" & _
        lastrow - 2 & ",E3:E" & lastrow - 1 & ")")
End With

@PhoenixNing如果这有效并且是您解决问题的方法,请单击答案旁的复选标记,将其标记为正确。它将奖励lbo和您自己,并将其从未应答队列中删除。@PhoenixNing如果这有效,并且是您解决问题的方法,请单击答案旁边的复选标记,将其标记为正确。它将奖励lbo和您自己,并将其从未应答队列中移除。