У меня есть настройки для отображения статуса / панели инструментов, по сути, журнал, который обновляется с другого компьютера. Это работает через Excel, вот так:

  • Кто-то добавляет данные в таблицу в «Log_Source.xlsx», которая находится на общем сетевом ресурсе, и сохраняет их.
  • На компьютере с приборной панелью (который представляет собой Intel Compute Stick (Windows 10 Home) и настенный монитор) имеется локальный файл «Log_Dashboard.xlsx» с подключением данных к исходному файлу в сети. Запрос обновляется каждую минуту. Таким образом, приборная панель может извлекать и отображать данные практически в реальном времени, не блокируя файл для редактирования.

Эта проблема:

Каждые несколько дней я получаю сообщение на приборной панели о том, что источник данных не может быть найден. И это больше не будет обновлять данные. Закрытие и повторное открытие Log_Dashboard.xlsx исправляет это, но как я могу предотвратить это?

Что я пробовал:

  • В настройках электропитания Windows: Изменен план High Performance. Установите жесткий диск, чтобы никогда не выключать. Установите для беспроводного адаптера максимальную производительность.
  • Запланирован запуск сценария AutoHotKey каждые 12 часов, который просто перемещает мышь вперед и назад. Я подумал, что это может помешать переходу компьютера в состояние сна, если это было проблемой.
  • В файл Excel добавлен макрос, который закрывает и открывает его каждый час. Видя, как я вручную исправляю проблему каждый раз, я думал, что об этом позаботятся, но это все еще происходит.

Какие-либо предложения? Или, если есть другой подход к настройке отображения панели управления, как этот, я открыт для этого ... Благодарю.

1 ответ1

0

Публикация того, что сработало для меня, на случай, если кто-нибудь с подобной проблемой столкнется с этим в будущем:

Я так и не смог понять, почему связь с данными постоянно падает. Я переключил компьютер "приборной панели" с Intel Compute Stick, подключенной к Wi-Fi, на старый компактный рабочий стол с подключением по Ethernet. Это несколько помогло, но я все еще испытывал потери соединения данных, наряду с другими ошибками Excel, такими как "Недостаточно памяти".

Вот обходной путь, который, наконец, сработал для меня в моей ситуации:

Я вставил модуль в файл Excel («Log_Dashboard.xlsm») со следующим кодом:

Sub WorkbookSaveCycle()

ThisWorkbook.Save
PID = Shell("cmd /k @echo off & echo Restarting Dashboard, please wait... & @echo off & timeout /t 4 /nobreak & ""C:\Program Files (x86)\Microsoft Office\root\Office16\excel.exe"" """ & Application.ActiveWorkbook.FullName & """ & exit", vbMaximizedFocus)
Application.Quit

End Sub

Это просто сохраняет рабочую книгу, запускает команду оболочки, которая отображает сообщение о том, что приборная панель перезапускается (в случае, если кто-то смотрит на экран в данный момент), а затем повторно открывает файл Excel после нескольких секунд ожидания его закрытия. , (excel.exe может быть изменен при использовании другой версии Office)

Затем я помещаю это в модуль ThisWorkbook :

Private Sub Workbook_Open()

Application.DisplayFullScreen = True
Application.OnTime Now + TimeValue("00:15:00"), "WorkbookSaveCycle"

End Sub

Когда файл Excel открывается, он устанавливает его в полноэкранный режим, а затем, после ожидания предварительно определенного количества времени (15 минут здесь), вызывает вышеуказанный макрос WorkbookSaveCycle . Что просто приводит цикл в движение снова, закрывая и снова открывая файл.

Я уверен, что есть лучший способ сделать это, но он был в основном стабильным с момента внесения этих изменений.

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