【问题标题】:Add and Update Single Item in Sharepoint List via VBA通过 VBA 添加和更新 Sharepoint 列表中的单个项目
【发布时间】:2014-03-17 09:31:24
【问题描述】:

我正在尝试通过 VBA 添加和/或更新共享点列表中的单个项目,我发现了一个类似的问题: Import Sharepoint 2010 list data from Excel table using VBA

但我不得不说我只能用这段代码删除项目而且我不熟悉这段代码来理解我是如何添加的。

提前致谢

编辑:我也在这里:http://msdn.microsoft.com/en-us/library/lists.lists.updatelistitems(v=office.12).aspx 但我就是不明白

【问题讨论】:

    标签: excel list vba sharepoint


    【解决方案1】:
    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
    

    现在我明白了。这是您可以将项目添加到共享点列表的方式。 FieldNameVar 是您必须在其中输入内容的字段的名称(例如,此值可以是“标题”),而 ValueVar 是您在 FieldNameVar 字段中输入的值。

    【讨论】:

    • 我的响应状态为 200,但我添加的项目不存在。你有什么建议?
    • 这似乎是由于帖子中未提供必填字段。需要进行哪些修改才能使用多个必填字段?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多