![](/img/trans.png)
[英]Not able to open downloaded Excel file from Sharepoint 2013 using Excel VBA
[英]Is there a way to retrieve file metadata from Sharepoint using VBA in excel without having to open each file?
我的目標是向我的用戶提供一種方法,可以在 excel 的 VBA 用戶表單中預覽存儲在 Sharepoint 上的文件的詳細信息。 到目前為止,我能夠使用Scripting.FileSystemObject
檢索文件列表。
我知道我可以使用ContentTypeProperties
來訪問我想要的信息,但這似乎取決於打開每個文件。 是否有其他方法可以讓我訪問元數據而無需打開每個文件?
我不是 Sharepoint 的狂熱用戶,所以請原諒我使用術語。
就我自己的理解而言,我正在進入未知領域,因此非常感謝任何幫助或進一步閱讀的指示。
謝謝!
編輯:現有代碼依賴Scripting.FileSystemObject
僅檢索文件名。
Private Sub UserForm_Activate()
Dim spURL As String
Dim oFile As Object, oFSO As Object, oFldr As Object, oFiles As Object, oDSO As Object
Dim ext As String, title As String
spURL = **sharepoint url**
Set oFSO = CreateObject("Scripting.Filesystemobject")
Set oFldr = oFSO.getfolder(spURL)
Set oFiles = oFldr.Files
For Each oFile In oFiles
If InStr(1, ext, "xls") Then
Me.cboFiles.AddItem oFile.Name
End If
Next
Set oFSO = Nothing
Set oFldr = Nothing
Set oFiles = Nothing
End Sub
現在假設我想獲取文檔類型,這是當文件簽入到 sharepoint 時文檔屬性中的自定義字段,我知道我可以執行以下操作:
set wb = workbooks.open(spURL & oFile.Name)
debug.print wb.ContentTypeProperties.Item(x).Value
(其中 Item(x) 與我需要從中提取信息的字段相關)但是,我要確定的是是否存在不需要打開工作簿的替代方法。
深入研究一下,我在http://www.cpearson.com/excel/docprop.aspx上發現了以下內容:“VBA 不直接支持從關閉的文件中讀取屬性。但是,Microsoft 已免費提供下載一個名為 DSO OLE Document Properties Reader 2.1 的 DLL 文件,或簡稱為 DSOFile.dll。有了這個 DLL,您可以從“文件”中讀取 OLE 和自定義屬性等 XLS 工作簿
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.