4

У меня есть следующие настройки:

  1. 1 Рабочая книга с именем Workbook1 со значением 123 в A1
  2. 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 не инициировали обновление ячейки, поскольку значение уже правильное, просто не нужно обновлять вычисление - поскольку оно уже есть, просто не видно ,

1 ответ1

0

Если оба файла находятся в одной папке, они сразу же автоматически обновляются по всем файлам.

Если оба файла находятся в разных папках (в моем случае это также разные разделы диска), он не обновляется. Для обновления сначала сохраните файл, в котором вы внесли изменения. Затем перейдите к другому файлу, выберите ячейку для редактирования (нажмите F2), нажмите Enter без каких-либо изменений. Это обновляется.

Это может быть не ошибка, это может быть связано с настройками "Обновление внешних ссылок", их так много, что я не смог понять. Кто-то, зная об этом, может пролить свет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .