我的工作簿中有一个名为“cellabove”的命名区域,它始终引用它所使用的单元格上方的单元格。名称的RefersToR1C1属性为“=!R [-1] C”。这允许它应用于工作簿中的任何工作表。
当我运行一个删除某些行的宏时,即使我用application.calculatefullrebuild结束宏,它们的公式中包含cellabove的一些单元格也不会重新计算。但是,当我按CTRL + SHIFT + ALT + F9手动强制完全重建时,单元格会重新计算。
如何强制相对引用的命名范围进行刷新?
答案 0 :(得分:1)
尝试在代码中添加其中一个计算选项,以查看它们是否有效。
Sub Calculate_It()
ActiveSheet.Calculate
''// Equivalent to Shift+F9 Recalculates the active worksheet
Application.Calculate
''// Equivalent to F9 Recalculates all worksheets in all open workbooks
Application.CalculateFull
''// Equivalent to Ctrl+Alt+F9 Recalculates all worksheets in all open workbooks (Full recalculation)
Application.CalculateFullRebuild
''// Equivalent to Shift+Ctrl+Alt+F9 Rebuilds the dependency tree and does a full recalculation
End Sub
答案 1 :(得分:1)
使用以!开头的!在定义的名称公式是恕我直言不可取,因为有长期存在的错误
您可以使用=INDIRECT("R[-1]C",FALSE)
代替