繁体   English   中英

Excel VBA打开Sharepoint文件夹并为其中的文件创建超链接列表

[英]Excel VBA to open Sharepoint folder and create list of hyperlinks for files within

在被要求迁移到SharePoint之前,我使用了一系列.xlsm文件来设置项目团队来管理项目。 我的项目管理器文件包含一个宏,该宏将转到指定的文件夹并为所有当前项目文件创建超链接。 我已经在SharePoint上保存了.xlsm文件的集合,但是当我运行下面的宏时(在这里找到-谢谢!),我收到与“ Set xFolder = xFSO.GetFolder(xPath)”行相关的错误。 。 任何帮助都会很棒。 我读了几篇可能有答案的文章,并尝试对代码进行了几次调整,但都没有运气。

Sub Create_Hyperlinks_for_all_Current_Projects()

Range("B8:D38").Clear

MsgBox "Once you click OK, an explorer box will appear. Select the folder 
containing all the CSTPs and then click OK again. HINT: The folder 
containing all the CSTPs should be in the same folder this document was in 
and should be called ''CSTPs''. Links to all CSTPs will then appear in the 
white box on the Manager Menu."
Dim xFSO As Object
Dim xFolder As Object
Dim xFile As Object
Dim xFiDialog As FileDialog
Dim xPath As String
Dim I As Integer
Set xFiDialog = Application.FileDialog(msoFileDialogFolderPicker)
With xFiDialog
.InitialFileName = ThisWorkbook.Path
End With
If xFiDialog.Show = -1 Then
    xPath = xFiDialog.SelectedItems(1)
End If

Set xFiDialog = Nothing
If xPath = "" Then Exit Sub
Set xFSO = CreateObject("Scripting.FileSystemObject")
Set xFolder = xFSO.GetFolder(xPath)
For Each xFile In xFolder.Files
    I = I + 2
    ActiveSheet.Hyperlinks.Add Cells(I + 6, 2), xFile.Path, , , xFile.Name
Next
End Sub

希望以下说明对您有所帮助。 他们总结了几周沮丧的结果。

如果使用的是SP365,则文件系统对象将无法再正常工作。

我有数百个依赖于FSO的宏。 在我的组织迁移到SP365之前,所有这些工作都很有效:

现在,只有在我首先在SP中手动单击“打开资源管理器”按钮时,它们才起作用。

打开资源管理器将为Win Explorer提供访问SP所需的权限。 反过来,这又为FSO提供了访问SP所需的权限。

但是...就我而言... FSO只能工作一段时间。

对于我的第一次工作...

我推出了一个原型应用程序,该应用程序使用宏来自动打开IE,打开Win Explorer并初始化FSO的权限

在我的机器上运行了大约一个小时,一切都很好,然后某种超时使我回到了第一位。

其他机器上的同事经历了一系列FSO行为。 一切正常。 必须每30秒重新运行一次连接宏。 没有任何作用。

然后,我花时间尝试更新宏以将其作为网络驱动器连接到SP。 同样,这是我使用多年的过程,直到迁移到SP365。 同样,成功连接到SP365似乎与机器息息相关。

最后...关于我自己的要求...

我的解决方法是创建一个列出所有文件的SP视图。 然后使用SP中的“导出到Excel”选项创建Excel数据查询。 然后将查询复制到一个我称为Config.xlsx的Excel文件中。 然后,在每次需要列表时,都使用Excel RefreshAll更新文件列表。

它不是很优雅...但是,它可以工作; o)

就像我说的...。希望这对您/某人有帮助。

如果您需要任何后续建议,请随时在LinkedIn上进行连接。

彼得,

领英名称DrPeterEHSmee

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM