添加新行时,使Excel公式自动添加

时间:2016-06-29 18:38:19

标签: excel vba excel-vba

我已将用户表单添加到Excel电子表格中,该电子表格会向用户询问问题并将其添加到电子表格中的新行。

电子表格中的每一列都有自己的公式,可根据用户输入进行计算。

有没有办法让我可以自动将列中连续的公式“拉”到添加的行中?

我想我可以在我的用户表单的代码中更改它,所以当一个人点击“提交”时,所有单元格都会更新。但我只知道如何更新值,而不是添加公式。这是我的代码的一部分:

    .Cells(iRow, 6).Value = Me.TextBox1.Value
    .Cells(iRow, 7).Value = Me.TextBox2.Value
    .Cells(iRow, 8).Value = Me.TextBox3.Value
    .Cells(iRow, 9).Value = Me.TextBox4.Value
    .Cells(iRow, 10).Value = Me.TextBox5.Value
    .Cells(iRow, 11).Value = Me.TextBox6.Value
    .Cells(iRow, 12).Value = Me.TextBox7.Value
    .Cells(iRow, 13).Value = Me.TextBox8.Value
    .Cells(iRow, 14).Value = Me.TextBox9.Value
    .Cells(iRow, 15).Value = Me.TextBox10.Value

是否可以添加一些内容来更改单元格值1-4?也许是这样的:

.Cells(iRow, 1).Value = *insert formula here*

2 个答案:

答案 0 :(得分:1)

您可以使用范围相对公式属性To correct this error make sure you include both a Get procedure and a Set procedure between the Property statement and the End Property statement.来使公式引用相对调整:

.FormulaR1C1

如果您想要完全相同的公式,也可以使用常规.Cells(iRow, 1).FormulaR1C1 = .Cells(iRow - 1, 1).FormulaR1C1 属性,而不需要更新相对参考。

您也可以同时对所有4列执行此操作:

.Formula

答案 1 :(得分:0)

如果公式已在上面的单元格中,您可以执行以下操作:

.Range(.Cells(iRow - 1, 1).Address,.Cells(iRow, 1).Address).Filldown

这将填充从上面的单元格到相关单元格的公式。