Добавить кратный элемент в список sharepoint с помощью vba - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть список sharepoint, который содержит поля ниже

1) id

2) type

3) body

Я хочу добавитьэлементы в приведенном выше списке (в трех столбцах одновременно и в одной строке) с использованием функции VBA.

Я думал о создании функции, которая получает словарь, в котором каждая строка словаря будет иметь значение и поле (ключ) списка, в который она будет добавлена.Но я не знаю, если это лучший способ.

Я пытаюсь адаптировать функцию ниже для моей проблемы.Но это не работает.

Sub Add_Item(ListName As String, SharepointUrl As String, ValueVar As 
String, FieldNameVar As String)

Dim objXMLHTTP As MSXML2.XMLHTTP

Dim strListNameOrGuid As String
Dim strBatchXml As String
Dim strSoapBody As String

Set objXMLHTTP = New MSXML2.XMLHTTP

strListNameOrGuid = ListName


'Add New Item'
strBatchXml = "<Batch OnError='Continue'><Method ID='3' Cmd='New'><Field 
Name='ID'>New</Field><Field Name=" + FieldNameVar + ">" + ValueVar + " 
</Field></Method></Batch>"


objXMLHTTP.Open "POST", SharepointUrl + "_vti_bin/Lists.asmx", False
objXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=""UTF-8"""
objXMLHTTP.setRequestHeader "SOAPAction", 
"http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"

strSoapBody = "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema- 
instance' " _  
 & "xmlns:xsd='http://www.w3.org/2001/XMLSchema' " _
 & "xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body> 
 <UpdateListItems " _
  & "xmlns='http://schemas.microsoft.com/sharepoint/soap/'><listName>" & 
 strListNameOrGuid _
  & "</listName><updates>" & strBatchXml & "</updates></UpdateListItems> 
 </soap:Body></soap:Envelope>"

 objXMLHTTP.send strSoapBody

 If objXMLHTTP.Status = 200 Then
 '   Do something with response
 End If

 Set objXMLHTTP = Nothing

 End Sub

Любая помощь будет оценена.Заранее спасибо.

...