我遇到了一个问题,我在For Each Next循环中陷入无限循环(无限到范围的末尾,即)。我知道我不能倒退,当然也不会有一个独立的"下一个":
Dim region As Range
Set region = Range("C4:CC4")
For Each Cell In region
If Len(Cell) > 0 Then
Cell.Offset(0, 1) = Cell.Value
**Need "Next Cell" Here**
End If
Next Cell
编辑:到目前为止,感谢您的回答,但我想我需要澄清一下:问题不在于无限循环本身。现在,它正在按照我的范围逐个细胞去查看它是否有在单元格中写入的东西。如果是,则将其复制到其右侧的一个并循环。问题特别是如果复制一个值,那么它需要跳过刚刚复制了值的那个单元格,否则它会开始无限循环。从本质上讲,我需要一种方法来跳过" Skip"或" Next Cell"在If语句的中间。
编辑2 再次感谢 - Cool Blue的评论链接是解决方案!
答案 0 :(得分:1)
试试这个。我希望它有所帮助。
Dim region As Range
Dim firstcell, lastcell As String
firstcell = "C4"
lastcell = "CC4"
Set region = Range(firstcell & ":" & lastcell)
For Each CELL In region
If Len(CELL) > 0 Then
CELL.Offset(0, 1) = CELL.Value
' **Need "Next Cell" Here**
If Replace(CELL.Address, "$", "") = lastcell Then Exit For
End If
Next CELL
答案 1 :(得分:0)
我对这个答案迟到了,但无论如何......它可能非常简单,你甚至不需要任何if语句。诀窍是只循环througt(特殊)单元格,这些单元格具有一些(常量)内容而不是遍历所有单元格。 HTH
Dim region As Range
Dim myCell As Range
Set region = Range("C4:CC4")
For Each myCell In region.SpecialCells(xlCellTypeConstants)
myCell.Offset(0, 1) = myCell.Value
Next myCell