使用宏插入行时,单元格范围的公式未更新

时间:2014-11-02 20:15:41

标签: excel excel-vba vba

我很高兴在Excel中使用Macros,所以如果这是一个愚蠢的问题我会道歉。 首先,我创建了一个电子表格,用于跟踪我的每周支出并进行设置,以便在我的智能手机上轻松操作。我有三组费用(食品,燃料,其他),每组最后列出的总费用和可用费用。这些小组是垂直组织的。

我找到了一个宏,它将在包含特定文本的单元格上方插入一行并将其放入按钮中。我遇到的问题是它没有更新任何总和一系列单元格的公式。 例如,如果我有一个= SUM(B2:B5),那么在该范围内用宏插入一行,它不会更新' B5'到' B6'。

我是否需要添加到宏中以使其更新工作表上的公式?

这是宏:

Dim Col As Variant
Dim BlankRows As Long
Dim LastRow As Long
Dim R As Long
Dim StartRow As Long

    Col = "B"
    StartRow = 1
    BlankRows = 1

        LastRow = Cells(Rows.Count, Col).End(xlUp).Row

        Application.ScreenUpdating = False

        With ActiveSheet
For R = LastRow To StartRow + 1 Step -1
If .Cells(R, Col) = "Food Total:" Then
.Cells(R, Col).EntireRow.Insert Shift:=xlUp
End If
Next R
End With
Application.ScreenUpdating = True

1 个答案:

答案 0 :(得分:0)

可能会发生这种情况,因为您在B6中有SUM公式并且您在第6行插入了新行。=SUM(B2:B5)公式从未包含B6,因此在插入时不会自动调整新行。

在包含=SUM(B2:B5)公式的行之间创建一个新的空白行,并将公式更改为=SUM(B2:B6)(包括空白行)。现在,当您在第6行插入新行时,公式将调整为=SUM(B2:B7)。空白行不会影响SUM公式结果,您可以更改高度甚至回填,使其看起来像下边框。