Есть ли способ в VBA получить параметр ListName из списка Sharepoint, когда в качестве входных данных используется только URL? - PullRequest
0 голосов
/ 08 января 2019

Я создаю инструмент в VBA, который работает с данными Sharepoint. Я не знаю, как подходить к спискам, хотя. Я хочу иметь возможность использовать URL-адрес списка для макроса, чтобы загрузить список в виде таблицы (как в веб-запросе .iqy).

Я нашел более ранний пост об этом, но в target-c: Sharepoint: GetList listName, возвращающий весь список

но я не знаю, как это сделать в VBA. Я надеялся, что это можно сделать без особого языка разметки. Возможно, отправка запроса на сайт sharepoint и получение параметра (с помощью WinHttp.WinHttpRequest). Эта функция будет использовать приведенный ниже код. Из URL я мог бы извлечь сервер и ViewGUID, но, к сожалению, не ListName.

Sub ImportSharePointList()

    Dim objMyList As ListObject
    Dim objWksheet As Worksheet
    Dim strSPServer As String
    Const SERVER As String = "mysite:8003/sites/the-sharepoint-thing/"
    Const LISTNAME As String = "{D1F1C2ED-81BA-41CC-A698-XXXXXXXXXXXX}"
    Const VIEWNAME As String = "{27C9CA20-3293-4BD5-9271-XXXXXXXXXXXX}"

   ' The SharePoint server URL pointing to
   ' the SharePoint list to import into Excel.
    strSPServer = "http://" & SERVER & "/_vti_bin"
    ' Add a new worksheet to the active workbook.
    Set objWksheet = Worksheets.Add
    ' Add a list range to the newly created worksheet
    ' and populated it with the data from the SharePoint list.
    Set objMyList = objWksheet.ListObjects.Add(xlSrcExternal, _
        Array(strSPServer, LISTNAME, VIEWNAME), False, , Range("A1"))

End Sub

1 Ответ

0 голосов
/ 09 января 2019

То, чего мне удалось добиться, - это создание http-запроса к API sharepoint:

...
myUrl = [the address.aspx]

With theHttp
    .SetAutoLogonPolicy(AutoLogonPolicy_Always)
    .Open "GET", myUrl, False
    .Send
    resp = .ResponseText
End with
...

Тогда я просто использовал Mid, чтобы убрать ListId. Запрос извлек все данные с сайта (слишком много). Может кто-нибудь сказать мне, как получить только ListId?

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