工作簿最小化时 Excel 2013/2016 不更新值

工作簿最小化时 Excel 2013/2016 不更新值

我有以下设置:

  1. 1 个以A1 中的Workbook1值命名的工作簿123
  2. 1 个以A1 中的Workbook2值命名的工作簿=[Workbook1.xlsx]Sheet1!$A$1

现在,当我将 的值更改Workbook1为其他值时,该值将按预期更新Workbook2

但遗憾的是,当我最小化Workbook2然后更改值Workbook1并恢复Workbook2以验证该值是否已更新时,它仍然显示旧值。

注意:

  • 恢复窗口后,即使我计算(F9)或计算整个工作表(SHIFT + F9),值也不会更新

  • 当我向其中添加新的工作表时,Workbook2值会更新(我发现这更像是巧合)

有没有办法来解决这个问题?

更新:

正如 Máté Juhász 在评论中提到的,实际上有多种方法可以更新值。

我自己发现切换视图会触发单元格更新,或者只是改变显示标尺、显示网格线、显示标题属性,它们都会触发单元格更新其值。

我还看了一下:

MsgBox Application.Range("A1").Value
MsgBox Application.Range("A1").Text

两者在旧值仍然可见时输出正确的值。

因此我想到,所有触发单元格的操作都有一个共同点,即屏幕会更新,所以我当前的“解决方案”如下:

Private Sub Workbook_WindowResize(ByVal Wn As Window)

Dim oldValue As Boolean
oldValue = Application.ScreenUpdating
Application.ScreenUpdating = Not oldValue
Application.ScreenUpdating = oldValue

End Sub

在了解到问题仅仅是屏幕没有更新之后,我还尝试简单地将单元格滚动出可见范围并向后滚动 - 这也更新了单元格的值。

此外,现在可以理解为什么 F9 和 SHIFT + F9 没有触发单元格更新,因为值已经正确了,只是没有什么可以计算更新的 - 因为它已经存在,只是不可见。

答案1

如果两个文件位于同一文件夹中,则会立即自动更新文件。

如果两个文件位于不同的文件夹中(在我的情况下也是不同的磁盘分区),则不会更新。要更新,请先保存您进行了更改的文件。然后转到另一个文件,选择要编辑的单元格(按 F2),按 Enter 而不进行任何更改。它会更新。

这可能不是一个错误,它可能与“更新外部链接”设置有关,这些设置太多了,我搞不清楚。了解这方面知识的人可能会给你一些启发。

相关内容