用相对引用的Excel命名范围不计算

我的工作簿中有一个名为“cellabove”的命名范围,它总是引用单元格上方的单元格。名称的RefersToR1C1属性为“=!R [-1] C”。 这使它可以应用在工作簿中的任何工作表上。

当我运行一个macros删除一些行,然后包含cellabove在公式中的一些单元格不重新计算,即使我用application.calculatefullrebuild结束macros。 但是,当我然后手动强制完全重build按CTRL + SHIFT + ALT + F9单元格重新计算。

任何想法如何强制相对引用的命名范围刷新?

使用指引,开始! 在定义名称公式是恕我直言不build议,因为有长期的错误。
您可以使用=INDIRECT("R[-1]C",FALSE)

尝试将这些计算选项之一添加到您的代码,以查看它们是否有效果。

 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