循环不同的范围

时间:2013-07-12 14:31:32

标签: excel vba excel-vba

我正在使用vba代码来检查标准保留范围内的单元格1。然后我需要循环通过其他范围来检查其他标准2,3,4 ...我的范围必须是可变的。它逐列循环,总是在第3行和“lr”之间循环,这是一个变量。我也有列号变量“col”,因为这是我必须递增到循环的变量。我写了这个,但它不起作用。 在我的For Each循环中,我也调用了其他函数。这些函数称为“CriteriaCol1”,“CriteriaCol2”等。所以Sub im调用中的列号和数字是相同的。那么有没有办法让子标题中的数字也变量呢?这是一些令人困惑的代码:

Sub error_rept()

Dim lr As Long
Dim colrg As Range
Dim col As Integer
Dim Passed As Boolean

    lr = ActiveSheet.Range("A1").Offset(ActiveSheet.Rows.Count - 1, 0).End(xlUp).Row - 1
    col = 1

    Do While col < 8

        set colrg=sheets("NewDataSheet").range(col,3:col,lr)
            For Each cell In colrg
                '##if "run CriteriaCol1 and check if value of passed is true or false" then
                    Next
                Else
                    'do something
                End If
            Next

End Sub

Sub CriteriaCol()

Dim passes As Boolean

    If (cell.Value) = 6.01 Or (cell.Value) = 6.03 Or (cell.Value) = 6.04 Or (cell.Value) = 6.27 Then
        Passed = True
    Else
        Passed = False
    End If

End Sub

Sub CriteriaCol2()

Dim Passed As Boolean

    If (cell.Value) < 9999 And (cell.Value) > 1000 Then
        Passed = True
    Else
        Passed = False
    End If
End Sub

行集colrg给出错误:语法错误

有什么建议吗? 感谢

2 个答案:

答案 0 :(得分:0)

设置范围的一种方法是使用Cells()方法。例如,要将范围对象设置为“B2:C5”,您将使用以下内容:

set colrg = Sheets("Sheet1").Range(Cells(2,2),Cells(5,3))

由于(2,2)对应于第二行和第二列,B2和(5,3)对应于第五行和第三列,C5。

然后,您可以使用For Each和变体或单元格对象遍历此范围。

答案 1 :(得分:0)

试试这个......

set colrg=sheets("NewDataSheet").range(format(col) & "3:" & format(col) & format(lr))