2014-10-03 126 views
1

我试图比较一个单元格的值(总是一个数字)与for循环中的迭代变量,但由于某种原因vba说这是一个无效的调用或参数。我是新的vba,所以任何帮助将不胜感激。在vba中比较单元格的值

For i = 2 To wb1.Sheets("Development Priority List").Rows.Count 

If wb1.Sheets("Development Priority List").Cells("A" & i).Value < i - 1 Then 
    wb1.Sheets("Development Priority List").Range("A" & i, "Z" & i).Delete 
End If 

Next i 
+0

除了下面提到的@ jbarker2160。还有一件事。您必须在反向循环中删除行,否则您将错过行。 Se [THIS](http://stackoverflow.com/questions/26176185/how-to-delete-rows-based-on-condition-in-vba)还有一个重点。您正在使用'.Rows.Count'这意味着它将循环通过工作表中的所有行。你为什么想这么做。我会建议使用[THIS]找到lastrow(http://stackoverflow.com/questions/11169445/error-finding-last-used-cell-in-vba),然后循环直到该行。 – 2014-10-03 15:47:50

+0

另一点:你可以使用'.Autofilter'来代替循环,它会快得多...... :) – 2014-10-03 15:48:20

回答

2

您的IF语句不正确。更改为:

If wb1.Sheets("Development Priority List").Cells(i,1).Value < i - 1 Then 
+0

+ 1你打败了我:) – 2014-10-03 15:43:05

+0

或者用'.Range'替代'.Cells'' – 2014-10-03 15:43:35