У меня есть следующие настройки:
- 1 Рабочая книга с именем
Workbook1
со значением123
в A1 - 1 Рабочая книга с именем
Workbook2
со значением=[Workbook1.xlsx]Sheet1!$A$1
в A1
Теперь, когда я иду и меняю значение Workbook1
на что-то другое, значение обновляется, как и ожидалось в Workbook2
.
Но, к сожалению, когда я минимизирую Workbook2
и затем изменяю значение в Workbook1
и затем восстанавливаю Workbook2
чтобы проверить, обновлено ли значение, оно все равно показывает старое значение.
Обратите внимание:
после восстановления окна, даже если я вычисляю (F9) или вычисляю весь лист (SHIFT + F9), значение не обновляется
когда я добавляю новый рабочий лист в
Workbook2
значение обновляется (это было скорее совпадением, что я обнаружил, что)
Есть ли способ это исправить?
Обновить:
Как уже упоминалось в комментариях Máté Juhász, существуют различные способы обновления значения.
Я сам обнаружил, что переключение View запускает ячейку для обновления или просто изменяет линейку Display, свойство Display gridlines, Display headers, и все они запускают ячейку для обновления ее значения.
Я также посмотрел на:
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 не инициировали обновление ячейки, поскольку значение уже правильное, просто не нужно обновлять вычисление - поскольку оно уже есть, просто не видно ,