Прекращается подключение к данным панели мониторинга Excel

326
wysiwyg

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

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

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

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

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

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

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

0
Есть ли образец ошибки? Или это случайно? Возможно ли это связано с тем, что он не может обновиться, когда у кого-то открыт файл источника данных? CharlieRB 7 лет назад 0
@CharlieRB Проблема * обычно * утром, после того, как компьютер простоял всю ночь. Я бы не назвал это шаблоном, но именно поэтому я подумал, что это причина энергосбережения. Открытый исходный файл не влияет на его способность к обновлению. wysiwyg 7 лет назад 0

1 ответ на вопрос

0
wysiwyg

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

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

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