【发布时间】:2016-11-20 06:16:05
【问题描述】:
如果可能,我正在考虑尝试加快下面的嵌套 If 语句,因为它会遍历我列中的每一行。这会影响我的宏的运行时间:
Set Col = Range("O2:O" & lastrowOU3)
For Each Cell In Col
If Cell.Offset(0, -2) = 0 And Cell.Offset(0, -1) = 0 Then Cell.Value = "NEW ITEM"
If Cell.Offset(0, -2) = 0 And Cell.Offset(0, -1) = "NEW ITEM" Then Cell.Value = "NOT VALIDATED"
If Cell.Offset(0, -2) < Date And Cell.Offset(0, -1) = "NEW ITEM" Then Cell.Value = "NOT VALIDATED"
If Cell.Offset(0, -2) < Date And Cell.Offset(0, -1) = "VALIDATED" Then Cell.Value = "NOT VALIDATED"
If Cell.Offset(0, -2) < Date And Cell.Offset(0, -1) = "NOT VALIDATED" Then Cell.Value = "NOT VALIDATED 1"
If Cell.Offset(0, -2) < Date And Cell.Offset(0, -1) = "NOT VALIDATED 1" Then Cell.Value = "NOT VALIDATED 2"
If Cell.Offset(0, -2) >= Date Then Cell.Value = "VALIDATED"
Next
一旦满足上述任何一种情况,是否有办法避免经历每种情况,以便宏直接进入下一行?或者也许有更快的方法?
谢谢,
康纳
【问题讨论】:
-
1.) IF/ELSEIF/ENDIF 2.) 将值放在变量中,这样每个循环只会进入工作表两次。
-
如果您想要更快,请使用 Excel 公式而不是 VBA
标签: excel loops if-statement vba