Обрывы соединения с данными Excel Dashboard

Обрывы соединения с данными Excel Dashboard

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

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

Проблема:

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

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

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

Есть предложения? Или если есть другой подход к настройке отображения приборной панели, я открыт для этого... Спасибо.

решение1

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

Я так и не смог понять, почему постоянно обрывалось соединение с данными. Я переключил компьютер «панели управления» с подключенного по Wifi Intel Compute Stick на старый компактный настольный компьютер с подключением по 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макрос. Который просто снова запускает цикл, закрывая и снова открывая файл.

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

Связанный контент