Excel 跨列循环公式

Excel 跨列循环公式,excel,vba,loops,formula,Excel,Vba,Loops,Formula,我想在列之间循环一个公式,当它到达我定义的最后一列时,让它停止。代码如下: Sub LoopAcrossCols() Dim LastCol As Integer Worksheets("Sheet1").Activate LastCol = Cells(1, Columns.Count).End(xlToLeft).Column Column = 3 Do Cells(2, Column).Formula = "=B2+C3" Row = Row + 1 Loop Until LasCol

我想在列之间循环一个公式,当它到达我定义的最后一列时,让它停止。代码如下:

Sub LoopAcrossCols()
Dim LastCol As Integer
Worksheets("Sheet1").Activate
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Column = 3
Do
Cells(2, Column).Formula = "=B2+C3"

Row = Row + 1

Loop Until LasCol

End Sub
需要明确的是,随着循环从一列转到另一列,公式会发生变化。我只是不知道如何格式化=B2+C3来实现这一点。我愿意接受任何其他更有效的循环过程或使代码的任何部分更有效的方法。另外,我不确定是否循环,直到LasCol是循环的有效结束。非常感谢您的帮助


关于,

我不知道为什么要增加行,但循环的条件是基于列的。我对以下几点做了一些假设

Sub LoopAcrossCols()
    Dim c As Long, lc As Long
    With Sheets("Sheet1")
        lc = .Cells(1, Columns.Count).End(xlToLeft).Column
        For c = 3 To lc
            .Cells(2, c).FormulaR1C1 = "=SUM(RC[-1], R[1]C)"
        Next c
    End With
End Sub
使用无回路公式填充范围的替代方法

Sub LoopAcrossCols2()
    Dim lc As Long
    With Sheets("Sheet1")
        lc = .Cells(1, Columns.Count).End(xlToLeft).Column
        .Cells(2, 3).Resize(1, lc - 2).FormulaR1C1 = "=SUM(RC[-1], R[1]C)"
    End With
End Sub

非常感谢你,吉佩德,成功了。我想知道你能否解释一下=SUMRC[-1],R[1]C?我从未使用过R1C1符号。此外,出于示例的考虑,如果向下循环行,则公式的格式可以如下所示:Cellsrow,3。公式==A&row&*B&row。当在行之间循环而不是使用R1C1表示法时,这种格式当然会有所改变吗?@user324245-R1C1样式可以更容易地在VBA中创建带有关系地址的公式。RC[-1]表示“当前所在的行×左侧的一列”,因此,如果从C2开始,则表示B2。R[1]C是向下一行×在C3上的任何列。如果指定范围,还可以一次添加所有公式。这比循环快。我已经编辑了我的回复并添加了替代方法。