2014-11-02 79 views
0

我对使用宏使用Excel很新,所以如果这是一个愚蠢的问题,我很抱歉。 首先,我正在创建一个电子表格,用于跟踪我的周到周支出情况并设置它,以便在我的智能手机上进行操作。我有三组开支(食品,燃料,其他),每组的结束时列出总数和可用数量。这些组织是垂直组织的。使用宏插入行时不更新的单元格范围的公式

我发现了一个宏,它将在包含特定文本的单元格上插入一行,并将其放入按钮中。我遇到的问题是它没有更新任何总和一系列单元格的公式。 例如,如果我有a = 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 

回答

0

这是可能发生的,因为你必须在B6的SUM公式,你是在6行插入新行的=SUM(B2:B5)公式从未纳入B6所以它不会自动调整当你插入新行时。

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

+0

我有点难堪如何调整宏。我想做一些可以通过执行R-1并将其转储到另一个变量中来调整'R'的东西,但似乎并不奏效。查看我的编辑帖子了解宏观细节 – 2014-11-02 23:04:48

+0

@ Dr.Krieger - 是的,这正是它所做的。它位于包含“SUM”公式的行(例如* Food Total:*)并插入一行。您需要在它上面插入一个空白行,在'SUM'公式中包含该行并将插入行更改为'.Cells(R-1,Col).EntireRow.Insert Shift:= xlUp'。 – Jeeped 2014-11-03 01:44:12

相关问题