在 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
但仍然不清楚你想要做什么。
关于excel - 定义一组不相邻的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63235181/