我正在尝试循环遍历未按顺序选择的单元格,而是使用鼠标和 CTRL 进行选择。
当我使用for each
循环时,它可以工作,但是当我尝试时,for next
结果并不像预期的那样。
提出这个问题的目的是为了了解这两种方法之间的区别,并找出我是否在循环中做错了什么。
方法 1:For Each
循环
Sub foreachloop()
Dim oRange As Range
Set oRange = Selection
For Each cell In oRange
cell.Offset(0, -1).Value = 2
Next cell
End Sub
结果:符合预期(见截图)
方法 2:For Next
循环
Sub fornextloop()
Dim oRange As Range
Set oRange = Selection
For i = 1 To oRange.Count
oRange.Cells(i).Offset(0, -1).Value = 1
Next i
End Sub
结果:实际(见截图)
对于用例,我需要使用For Next
循环并且仍然希望实现预期的输出。
通过Ctrl+单击选择的单元格或范围由多个区域组成。要使用此
For Next
方法,请循环遍历每个区域内的每个单元格:我还建议您明确声明所有变量。
Option Explicit
在模块顶部使用将强制您这样做。在For Each
方法的情况下,应声明单元格As Range
(或项目) :