我已在Excel 2010中将一系列单元格定义为表格。我保护表格不受影响,以便其他用户不会错误地更改公式。我必须使用绑定按钮的宏来允许其他用户在工作表被锁定时添加行。但是,我注意到当我通过按钮添加行时,它会自动填充第I列中的错误公式。这是我最初输入但稍后更改的公式。我还注意到,当我解锁工作表并简单地向下拖动表格的右下角时,它会将正确的公式放在某些行中,而将错误的公式放在其他行中,甚至交替哪些行具有正确的公式。
您可能需要回答的其他信息:
=IF(G21=0," ",IF(G21="yes",I20+D21+H21,D21+(I20-F21)))
=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
答案 0 :(得分:1)
这是有效的:
宏的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
感谢所有帮助我实现这一目标的人!
答案 1 :(得分:0)
您能详细说明插入行中公式的确切错误吗?这些行是否被错误引用?
作为潜在的解决方法,您可以在此行添加以重新填充公式吗?
Range("I2:I" & Range("A1").End(xlDown).row).filldown
将I2替换为表中包含公式的第一个单元格
答案 2 :(得分:0)
遇到同样的问题,我的解决方案是: 复制正确的公式,这样您就不必再次输入并将其粘贴到安全的地方。 删除有问题的整个表列。将一列重新插入该点。抓住该配方并将其粘贴回来并适当填充色谱柱。这对我有用。我猜这个列有一些格式或某些东西
答案 3 :(得分:0)
我通过以下方式解决了这个问题:
根据需要在表的第一行的 WORKSHEET 中插入尽可能多的新行,并在其中填充数据。
没有问题了。
这是一个STUPID错误,应该在looooong之前修复。当MS不在乎这样的主要错误时,一个不好的信号预示着Excel的未来。
迪克
答案 4 :(得分:0)
对其他人的回答类似,但最近2个小时我一直在用这种方法梳理头发。
我将正确的公式(在我的情况下,它在第1行中)复制到了表格不相邻的单元格中。然后删除具有正确和错误公式的所有列单元格-仅使用Delete键即可。然后从以前复制到的单元格中复制回公式。现在,插入时自动填充可以使用正确的公式
非常奇怪的错误。...
答案 5 :(得分:0)
我用一个简单的方法解决了这个问题(不需要创建新列或类似的):
希望有所帮助(它对我有用)。