[英]Define a set of non-adjacent cells
在 VBA 中,可以使用“for”循环一次修改几个相邻的单元格。 例如:
Dim i As Integer, j As Integer
For i = 1 To 6
For j = 1 To 2
Cells(i, j).Value = 100
Next j
Next i
现在,让我们假设单元格不相邻。 例如,我想修改单元格 A3:B8、D9:V9 和 C7:F2。 有什么办法不用写三遍代码? 有没有办法定义一组单元格并让代码为每个单元格运行一次?
您可以遍历Areas
:
Sub Test()
Dim rng As Range
For Each rng In Range("A3:B8,D9:V9,C7:F2").Areas
Dim cell As Range
For Each cell In rng
cell.Value = 100
Next
Next
End Sub
请注意,整个内容可以替换为:
Range("A3:B8,D9:V9,C7:F2").Value = 100
但我想你的实际用例比这个简化的例子更复杂。
编辑:
也更简单:
Dim rng As Range
For Each rng In Range("A3:B8,D9:V9,C7:F2")
rng.Value = 100
Next
但仍然不清楚你想要做什么。
请看下面的代码:
Dim sh As Worksheet, rng As Range, C As Range, i As Long
Set sh = ActiveSheet
Set rng = sh.Range("A3:B8, D9:V9, C7:F2")
rng.Value = 100
rng.Select 'it is not necessary for the following loop. Only for you to better visualize the range...
For Each C In rng.cells
C.Value = C.Value + i: i = i + 1
Next
'you can see how the range is parsed (left to right, then down...)
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.