excel - 定义一组不相邻的单元格

标签 excel vba loops

在 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/

相关文章:

excel - 选择多个复选框后在Excel VBA中打印字符串

mysql - 修复 'Expected end of statement'

java - 如何制作一个 try-catch block ,该 block 不断调用对象上的方法,直到没有更多异常可捕获

mysql - 如何读取 MYI、MYD、frm

json - 在 Excel VBA 中将 JSON 发布到网络

python - 获取调用脚本的工作簿的位置

excel - 如何按特定顺序将 Excel 注释打印到多个工作表?

python - 在函数内编写循环会改变输出

python - While 循环何时中断

excel - VBA过滤掉小于30的日期