Публикация того, что сработало для меня, на случай, если кто-нибудь с подобной проблемой столкнется с этим в будущем:
Я так и не смог понять, почему связь с данными постоянно падает. Я переключил компьютер «приборной панели» с 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
макрос. Что просто приводит цикл в движение снова, закрывая и снова открывая файл.
Я уверен, что есть лучший способ сделать это, но он был в основном стабильным с момента внесения этих изменений.