首页 文章

添加行时MS Excel自动填充不正确的公式

提问于
浏览
0

我已经在Excel 2010中将一系列单元格定义为表格 . 我保持表格受保护,以便其他用户不会错误地改变公式 . 我必须使用绑定按钮的宏来允许其他用户在工作表被锁定时添加行 . 但是,我注意到当我通过按钮添加行时,它会自动填充第I列中的错误公式 . 这是我最初输入但稍后更改的公式 . 我还注意到,当我解锁工作表并简单地向下拖动表格的右下角时,它会将正确的公式放在某些行中,而将错误的公式放在其他行中,甚至交替哪些行具有正确的公式 .

您可能需要回答的其他信息:

  • 表包括A列到I列

  • 第I栏中的当前公式为: =IF(G21=0," ",IF(G21="yes",I20+D21+H21,D21+(I20-F21)))

  • 第I列中不再使用旧公式: =IF(G24=0," ",IF(G24="yes",F20+H24,F20-F24))

  • 使用的宏是:


Sub AddRow()

        ActiveSheet.Unprotect Password:="secret"

        Range("A1").End(xlDown).ListObject.ListRows.Add AlwaysInsert:=False

        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="secret"

 End Sub

4 回答

  • 0

    我也有这个问题 . 我选择了表格中的整个列,删除了所有(新)公式,右键单击并选择了“清除内容” . 然后将我的新配方重新复制到专栏中 . 在这之后,当插入一个新行(使用我的'row insert'宏)时,新公式被自动复制到新行中 . 不知道解决方案有多强大,但我不想开始摆弄我的(简单)'行插入'宏

  • 1

    这是有效的:

    • 在“开发人员”选项卡上,单击“录制宏” .

    • 为宏命名并输入描述,然后单击“确定” .

    • 解锁表格,

    • 选择Totals行,

    • 右键单击并选择“在上方添加一行”,

    • 选择Totals行上方第一列中的最后一个单元格,然后单击Ctrl D.

    • 锁定表格 .

    宏的VBA代码如下所示:

    Sub AddRowAndCopyFormula()
    '
    ' AddRowAndCopyFormula Macro
    ' Add one new row and copy correct formula in Column I.
    ' 
    
     '
        ActiveSheet.Unprotect
        Range("Table3[#Totals]").Select
        Selection.ListObject.ListRows.Add (17)
        Range("I24").Select
        Selection.FillDown
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
            , AllowFormattingCells:=True
    End Sub
    

    感谢所有帮助我思考的人!

  • 0

    你能详细说明插入行中公式的确切错误吗?这些行是否被错误引用?

    作为潜在的解决方法,您可以在此行添加重新填充公式吗?

    Range("I2:I" & Range("A1").End(xlDown).row).filldown
    

    将I2替换为表中包含公式的第一个单元格

  • 2

    遇到同样的问题,我的解决方案是:复制正确的公式,这样你就不必再次输入它并将其粘贴到安全的地方 . 删除有问题的整个表列 . 将一列重新插入该点 . grab 该配方并将其粘贴回来并适当填充色谱柱 . 这对我有用 . 我猜这个专栏有一些格式或某些东西

相关问题