我已经学会了如何仅使用 VBA 简单宏将共享点列表中的数据收集到 Excel 中。
现在我想做相反的事情 - 更新我的 Excel 文件中的一些列表,并将它们发送回 sharepoint 以更新列表,仅使用 VBA。
这可能吗?如果可能的话——如何实现?
Thanks!
是的。您可以使用XMLHttpRequest http://msdn.microsoft.com/en-us/library/ie/ms535874%28v=vs.85%29.aspxMicrosoft 的 XML SDK 提供的对象,以及 SharePoint 提供的用于更新一项或多项的 UpdateListItems Web 服务。在 Visual Basic 编辑器的“工具”->“引用”菜单中添加对“Microsoft XML,v6.0”的引用,然后使用类似以下代码的内容。
Dim objXMLHTTP As MSXML2.XMLHTTP
Dim strListNameOrGuid As String
Dim strBatchXml As String
Dim strSoapBody As String
Set objXMLHTTP = New MSXML2.XMLHTTP
strListNameOrGuid = "My List Name or GUID"
' Delete item with internal ID of "1"
strBatchXml = "<Batch OnError='Continue'><Method ID='1' Cmd='Delete'><Field Name='ID'>1</Field></Method></Batch>"
objXMLHTTP.Open "POST", "http://myserver/mysite/_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
您可以阅读有关语法的更多信息UpdateListItems
以及如何构建批处理 XMLhere http://msdn.microsoft.com/en-us/library/lists.lists.updatelistitems%28v=office.12%29.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)