从for循环(Excel VBA)中访问范围的下一个项目
我有一个过滤的电子表格,它没有明显的模式。我需要检查是否有两个连续的单元格用灰色填充(RGB:191,191,191)。当我连续说,我的意思是在可见细胞之外,如此连续不一定意味着行号将是连续的。不过,我不确定如何从for循环中访问该范围的下一行。我复制并粘贴了脚本的简化版本以帮助解答。由于
从for循环(Excel VBA)中访问范围的下一个项目
Set Rng = Range("A2:A105").SpecialCells(xlCellTypeVisible)
For Each rowcheck In Rng
If Cells(rowcheck.Row, "C").Interior.color = RGB(191, 191, 191) And _'
'The next visible cell also has an rgb value of 191 Then
blah blah
End If
Next rowcheck
就做两遍:
- 得到的信息
- 环比信息
例如:
Sub dural()
Dim boo() As Boolean, Rng As Range, i As Long, iMax As Long
Set Rng = Range("A2:A105").SpecialCells(xlCellTypeVisible)
ReDim boo(1 To Rng.Count)
i = 1
For Each rowcheck In Rng
If Cells(rowcheck.Row, "C").Interior.Color = RGB(191, 191, 191) Then
boo(i) = True
Else
boo(i) = False
End If
i = i + 1
Next rowcheck
iMax = i - 2
For i = 1 To iMax
If boo(i) And boo(i + 1) Then
'whatever
End If
Next i
End Sub
谢谢你,不得不在第一个for循环中添加'rowNum(i)= rowCheck.Row',所以我有一个行号可以在“无论”阶段引用,我猜这是最简单的方法? 我真的会认为会有一种简单的方法可以说,范围的第四个元素。你可以用For Each循环遍历这些,所以它会让我困惑,为什么你不能明确地引用它们。 – quantum285 2014-09-25 14:39:56
@ quantum285很难通过* index循环一个不相交的范围。*我通常需要**两个**通行证,尽管它对我来说很不愉快。 – 2014-09-25 14:48:16
两件事情:1 。是否可以使用“C”在'Cells()'中? (从来没有见过)和2.在'和'后面的评论中,下一个可见单元格意味着什么? – 2014-09-25 13:14:00
@Goosebumbs yes可以在'Cells()中使用列名称' – 2014-09-25 13:14:33
我想使用另一个变量来存储* previous *单元格,并在每次迭代中检查它,而不是尝试检查下一个单元格。 – Rory 2014-09-25 13:19:30