我的代码生成一个无限循环

时间:2017-09-29 19:43:51

标签: excel vba excel-vba

我的代码在所有H2列中粘贴相同的公式。我在代码中的任何地方都没有看到它应该这样做。

Worksheets("sheet1").Activate
Range("F2").Activate
Do Until IsEmpty(ActiveCell)
    If ActiveCell.Value <> "" Then
          Pickle = ActiveCell.Address
          ActiveCell.Offset(0, 2).Select
          ActiveCell.Value = "=IF(" + Pickle + " <TODAY(),""Send Reminder"",""Do not Send Reminder"") "
          ActiveCell.Offset(0, -2).Select
     End If 
     ActiveCell.Offset(1, 0).Select
Loop

1 个答案:

答案 0 :(得分:7)

不需要循环。使用.FormulaR1C1

不要使用激活和选择,它们会减慢代码

Dim lastrow As Long
With Worksheets("sheet1")
    lastrow = .Cells(.Rows.Count, "F").End(xlUp).Row
    .Range("H2:H" & lastrow).FormulaR1C1 = "=IF(RC[-2] <TODAY(),""Send Reminder"",""Do not Send Reminder"") "
End With

这将公式放在所有单元格中,RC [-2]正确引用F列中的同一行