QueryTables.Add в VBA добавляет один и тот же файл независимо от пути к файлу - PullRequest
0 голосов
/ 29 августа 2018

Заранее спасибо за помощь!

В VBA я использую следующий код для извлечения данных из файла IQY, хранящегося в Sharepoint (Workbooks.Open не был хорошим вариантом из-за приглашения «Импорт данных»):

Function getIQYWorkbook(ByVal filename As String) As Workbook
Dim wb As Workbook
Set wb = Workbooks.Add
Dim IQYFile As String
IQYFile = ThisWorkbook.Path & "/" & filename

With wb.Sheets("Sheet1").QueryTables.Add(Connection:= _
   "FINDER;" & IQYFile, Destination:=Range("A1"))

    .BackgroundQuery = True
    .TablesOnlyFromHTML = True
    .Refresh BackgroundQuery:=False
    .SaveData = True
End With

Set getIQYWorkbook = wb

End Function

Что удивляет, так это то, что извлекаемые данные не соответствуют фактическому файлу, который я передаю. Независимо от того, что я передаю, один конкретный файл IQY в папке Sharepoint загружен Что расстраивает, так как эта функция вызывается в цикле, который проходит с разными именами файлов.

Например, когда я использую следующий код (обратите внимание, что я установил путь к файлу со словом "dogs", что нелепо), тот же самый файл sharepoint все еще извлекается.

Function getIQYWorkbook(ByVal filename As String) As Workbook
Dim wb As Workbook
Set wb = Workbooks.Add
Dim IQYFile As String
IQYFile = "dogs"

With wb.Sheets("Sheet1").QueryTables.Add(Connection:= _
   "FINDER;" & IQYFile, Destination:=Range("A1"))

    .BackgroundQuery = True
    .TablesOnlyFromHTML = True
    .Refresh BackgroundQuery:=False
    .SaveData = True
End With

Set getIQYWorkbook = wb

End Function

Это сохраняется при перезагрузке / закрытии Excel / и т.д .... это как если бы QueryTables.Add "застрял" при извлечении одного и того же файла независимо от того, какой путь к файлу я передаю. Есть идеи о том, что происходит?

Большое спасибо!

1 Ответ

0 голосов
/ 12 июня 2019

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

У меня возникла такая же проблема. 2 других примера, которые у меня хорошо работают, и я тестирую третий, который тоже работал нормально.

Мой вывод заключается в том, что список SharePoint создает плохой или поврежденный файл .IQY. Я пробовал различные экспорты из моего списка SharePoint, и все они не работают Так что у меня нет решения для этого! Мой план обхода проблемы - Power Query в O365 для доступа к данным из файла Excel. Это позволяет избежать всплывающих окон, которые имеет файл .IQY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...