使用“For Each”循环将公式添加到select集之外的单元格

select框可以出现在我的标题行下面第二行的任何位置。 我需要在select范围内插入有效行数,然后为新插入的行添加公式到列102中的每个单元格。 我不是那么熟悉'For Each'循环方法,但是我知道我不想将公式添加到select的每个单元格中,仅在列102中。示例:

  • 标题行是第10行
  • 当代码执行时select单元B13至C16
  • 行13列102中的单元格得到公式“= sum(Q13:t13)”
  • 在第14行102列中的单元格得到公式“= sum(q14:t14)”
  • 行15列102中的单元格得到公式“= sum(q15:t15)”
  • 在第16行第102列中的单元格得到公式“= sum(q16:t16)”

我还没有到处调整我的代码,但这将是我的下一步。 现在我遇到的问题是,我只能将公式放在列102的最后一行,而不是102中的每一行。

Private Sub AddRows() Dim HeaderRow as Integer HeaderRow=10 'define the header row With Selection If .Row > HeaderRow + 1 Then 'use only rows that are after the header row .EntireRow.Insert 'insert the rows For Each Row In Selection.Rows .Cells(Row, 102).Value = "=sum($F19:$CW19)" '19 needs to match row number Next End If End With End Sub 

这是R1C1型配方的完美案例。 就像是

 .Cells(Row, 102).FormulaR1C1 = "=SUM(RC6:RC101)" 

如果你真的想要的值而不是公式,你可以添加一行:

 .Cells(Row, 102).Value = .Cells(Row, 102).Value 

编辑

在所有插入之后,您可以将公式一次添加到第102列:

 With Range("CX1:CX" & lastRow).SpecialCells(xlCellTypeBlanks) .FormulaR1C1 = "=SUM(RC6:RC101)" End With