首页 > 解决方案 > 使用多个恒定条件 VBA 循环

问题描述

我正在尝试做一个循环,但我有点卡住了。

Sub Macro()

Range("A392: A401").Value = Range("N2")

Range("A402: A411").Value = Range("N3")

Range("A412: A421").Value = Range("N4")

Range("A422: A431").Value = Range("N5")

....

我需要重复这个逻辑(在 A 列上为每 10 行设置一个值)这个值将从 N 列从 1 到 1 直到找到一个空行......

我无法在这些倍数条件下进行循环,您能帮帮我吗?

非常感谢!

标签: excelvbaloops

解决方案


Range.Offset是操纵范围的好方法。使用它,我们可以自动化范围以在每个循环中向下移动工作表。

Sub Macro()
    Dim i As Long
    While Range("N2").Offset(i) <> ""
        'Offset will shift N2 down by one each loop
        'Offset will shift the 10 cell range down by 10 on each loop
        Range("A392: A401").Offset(i * 10).Value = Range("N2").Offset(i)
        i = i + 1
    Wend
End Sub

推荐阅读