我正在使用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给出错误:语法错误
有什么建议吗? 感谢
答案 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))