Я не нашел удовлетворительного решения, но это может помочь вам, если вам крайне необходимо знать, что соединение было обновлено.Это также может зависеть от типа вашей связи.Отказ от ответственности это решение скорее взломать, чем профессиональное решение, но, кажется, работает до сих пор.Вот план:
1 Дисплей-пустышка
Отображение части данных о вашем соединении в рабочем листе.Этот лист Sheet1
может быть Hidden
или VeryHidden
.Не имеет значения
2 Событие
Измените событие Worksheet_Change
следующим образом:
Private Sub Worksheet_Change(ByVal Target As Range)
RefreshDate (Now())
End Sub
3 Модуль
Кроме того, вы хотите модуль, которыйпредоставляет функциональные возможности для хранения и доступа к свойству RefreshDate
на другом листе.Возможно, вы захотите сделать это с объектом, хранящимся в свойстве Thisworkbook
, но, насколько я могу судить, это не спасет от уничтожения.
Вот код:
Sub RefreshDate(D As Date)
Sheet2.Range("A1").Value = D
End Sub
Public Function GetRefreshDate() As Date
GetRefreshDate = Sheet2.Range("A1").Value
End Function
4 Промытьи повторите для всех соединений
Теперь вам нужно сделать это для всех соединений, которые не работают с RefreshDate
.Вы можете сохранить все даты на одном листе и иметь один лист для каждого соединения.
Уродливо ли это решение?Да, это.Это работает?Да, это так.
Основная идея заключается в следующем: Каждый раз, когда обновляется соединение, рабочий лист будет меняться, это вызовет событие: Worksheet_Change
теперь вы можете сохранить дату, чтобы получить к ней доступ позже.
Если вы найдете другие способы доступа к событию при каждом обновлении соединения, это тоже поможет.Если вы найдете другие способы сохранить RefreshDate
, это поможет.