如何手动传递用户名和&通过Excel VBA代码

时间:2017-06-11 21:17:14

标签: excel excel-vba sharepoint-2010 excel-vba-mac vba

目标 - 专门通过Excel VBA代码将SharePoint列表数据导入Excel。

问题 - 以下代码按预期将列表值加载到Excel中,但我想 传递用户名&密码手动 使用相同的代码,以便我可以根据需要更改凭据。

使用的技术 - SharePoint 2010和Excel VBA。

完整代码:

Sub RCAFunc()
Dim objMyList As ListObject*emphasized text*
Dim objWksheet As Worksheet
Dim strSPServer As String
Const SERVER As String = "intranet.xyz.com/Ops/RCA/"
Const LISTNAME As String = "{15f4dl02-iz9g-496o-uh9q-6br0984bb9tw}"
Const VIEWNAME As String = "294O2P46-ZC5S-4ETL-BQC9-4I234A4C4025"
' 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
Set objWksheet = Worksheets("MySheet1")
' 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), True, , Range("a1"))
Set objMyList = Nothing
Set objWksheet = Nothing

Call MyList1
'MsgBox ("Task Completed!")

End Sub

Sub MyList1()
 Dim wrksht As Worksheet
 Dim objListObj As ListObject

 Set wrksht = ActiveWorkbook.Worksheets("MySheet1")
 Set objListObj = wrksht.ListObjects(1)
 objListObj.Unlist
End Sub

谢谢!

2 个答案:

答案 0 :(得分:0)

您没有说明为什么需要这个,如果您使用它来将一些数据分发给其他人,那么您可以在sharepoint上设置权限,以便其他人也可以访问数据。

如果那不可能(?)那么您可以使用OLEDB连接到sharepoint,在其中设置用户凭据。

但是,如果分发此文件而不是在vba纯文本代码中存储用户名和密码,那是一个非常糟糕的主意。

答案 1 :(得分:0)

我发现This connection string reference表示您可以将用户名和密码附加到网址。

您也可以通过使用凭据运行Excel来手动提供凭据,因为VBA通常在与应用程序相同的上下文中运行。

或者,您可以通过ADO获取数据,这应该允许您在连接字符串中设置凭据。 Here is an example