Почему QueryTable.Delete уничтожает все остальные подключения в Excel 365 Pro +? - PullRequest
0 голосов
/ 01 июля 2019

При переходе от Office 10 к 365 ProPlus у меня есть база данных MS Access, создающая файл Excel из шаблона. Access копирует вкладку шаблона, устанавливает запрос, обновляет ListObject на новом листе, оставляя лист шаблона ListObject пустым. Этот процесс повторяется несколько раз.

Как только 365 обновляет объект списка на новом листе и удаляет QueryTable, опция обновления на листе шаблона ListObject отключается. Я получаю сообщение «Ошибка времени выполнения 1004: ошибка приложения или объекта».

Если я перейду медленно, я могу обойтись без ошибок примерно в 20% случаев.

Public Sub RefreshData_Sheet(ByRef Sheet As String, Optional ByRef PreserveConnection As Boolean)
    Dim objListObject
    For Each objListObject In objExcel.Sheets(Sheet).ListObjects
        If objListObject.SourceType = 0 Or objListObject.SourceType = 3 Then
            objListObject.QueryTable.Refresh False
            If Not PreserveConnection Then objListObject.QueryTable.Delete
        End If
    Next
End Sub
...