所以我有这本包含大量数据的工作簿。我有这张表,它基本上根据某些条件复制数据。
每行中的每个单元格如下所示(最后一个指定的单元格是公式所在的单元格):
=IF(Numbers1!E2<>0;Numbers1!A2;"")
=IF(Numbers1!E3<>0;Numbers1!A3;"")
=IF(Numbers1!E4<>0;Numbers1!A4;"")
=IF(Numbers1!E2<>0;Numbers1!B2;"")
=IF(Numbers1!E3<>0;Numbers1!B3;"")
=IF(Numbers1!E4<>0;Numbers1!B4;"")
所以单元格 A2 中的公式是第一个,A3 中的公式是第二行,依此类推。
我想从表格 Numbers1 中复制同一列和同一行的值,如果 E 列同一行中的值不为 0。这似乎工作得很好。
但是,当我更新 Numbers1 表中的数据时,公式突然无效,公式现在看起来像这样:
=IF(Numbers1!#REF!<>0;Numbers1!#REF!;"")
每个单元格中的每个公式看起来都与上面的公式相同。而且我做不到,为什么Excel不能在没有“帮助”我的情况下保持公式不变?
最佳答案
由于您最好使用宏来重写您的公式,以下是基础知识:
Sub RewriteFormulas()
Dim row, col As Integer
row = 1 'row you want your target formulas to be on
For row = 1 To 60
For col = 1 To 13
ActiveSheet.Cells(row, col).Formula = "=IF(Numbers1!" & Cells(row,col).Address & "<>0,Numbers1!" & Cells(row+2,col).Adddress & ","""")"
Next row
Next col
End Sub
您可以尝试使用不同的工作表(或不同的工作簿),而不仅仅是
ActiveSheet
因此,您可以拥有 1 个工作簿来存储宏并更改任何提供更新数据集的工作簿中的数据。希望有帮助...
关于Excel 2007 - 公式更改为 #REF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6646265/