Excel VBA - 循环以使用引用其他范围的公式填充范围

时间:2016-02-05 22:55:50

标签: excel vba excel-vba

我有2个工作表(sht1,sht2),两个都有相似的大小范围,我需要使用从sht2到sth1的公式。

实施例: 在sht2上添加公式到范围I10:K11链接到sht1范围B2:D3 下一个 在sht2上添加公式到范围I20:K21链接到sht1范围B6:D7 只要有范围

,依此类推

这些范围有数百种但是在两张纸上都有不同的距离,而且这些范围之间还有其他东西,所以我不能只填充整张纸。 sht1上的范围之间的距离是恒定的,也是sht2上的距离,只是彼此不同。

使用公式sht1在sht2上填充范围的最佳方法是什么?我应该在单元格中使用整数,然后按循环之间的已知距离移动整数吗?

1 个答案:

答案 0 :(得分:1)

与我的评论相反,交错背后的数学可能更容易理解为Range.Offset property。使用.Offset提供起点,Range.Resize property重塑目标区域。

Sub staggerLink()
    Dim r As Long, sht1 As Worksheet

    Set sht1 = Worksheets("sht1")

    With Worksheets("sht2")
        For r = 0 To 99
            .Cells(10, 9).Resize(2, 3).Offset(r * 10, 0).Formula = _
                Chr(61) & sht1.Cells(2, 2).Offset(r * 4, 0).Address(False, False, external:=True)
        Next r
    End With
End Sub

除了数百个这样的范围之外,您没有为您的项目提供任何范围。所以我只跑了100次。此外,您没有提供任何样本甚至描述您的公式'除了它必须链接到sht1'这就是我提供的公式。