2

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

当我运行一个删除某些行的宏时,即使我以 application.calculatefullrebuild 结束宏,一些在其公式中包含单元格上方的单元格也不会重新计算。但是,当我通过按 CTRL+SHIFT+ALT+F9 手动强制完全重建时,单元格会重新计算。

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

4

2 回答 2

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
于 2013-05-31T11:27:01.943 回答
1

使用是指以 ! 恕我直言,在定义名称公式中是不可取的,因为存在长期存在的错误。
你可以=INDIRECT("R[-1]C",FALSE)改用

于 2013-05-31T12:47:30.867 回答