我需要使用Excel VBA将SharePoint文档库中的所有文档的所有项目 Headers 直接读入数组 . 我似乎无法成功使用FileSystemObject,我不想将文档库映射到驱动器号,因为宏将被分发和广泛使用 .
-
SharePoint网站具有https地址
-
我看了this thread关于引用scrrun.dll但它不起作用,因为我无法更改本地域上的信任设置
-
This thread看起来很有希望,但似乎再次使用FileSystemObject,这可能是我的挂断 .
SharePoint stackexchange站点上的 -
This thread适合读取作为工作表对象的文件列表,但我不知道如何将其直接推送到数组中 .
-
我倾向于收到错误76 "Bad Path",但我很容易在本地(C :)文件上执行 .
-
我尝试过使用WebDAV地址 - 就像我给this thread的答案 - 但它也遇到了"Bad Path"错误 .
必须有一种方法可以将SharePoint文档库的内容直接读入不违反本地安全策略且不依赖于Excel工作表的数组中 .
1 回答
好的我会自己回答 . 我对我的解决方案并不是百分之百的兴奋,但它在我的限制范围内就足够了 . 以下是高级别要点:
使用VBA创建其中包含"Net Use"命令的BAT文件 .
引用文档库的WebDAV地址并查找可用的驱动器号
我怀疑我的任何用户已经拥有26个映射驱动器......) .
一旦文档库被映射,就可以通过使用FileSystemObject命令迭代它,并且可以将项目 Headers 加载到二维数组中 .
必须修改代码以允许3列出子文件夹
必须更改
ListMyFiles
sub中文件计数的位置,或者必须将另一个维度添加到数组中 .这是代码 - 我将尝试归功于集成到此答案中的所有Stack解决方案:
这是一个函数,它将读取目录并返回文件信息数组:
感谢Chris Hayes为his answer寻找空网络驱动器;感谢Kenneth Hobson对ozgrid的his expanded answer关于列出目录中的文件 . 其余代码很古老,我从2010年上次触及的文件夹中挖掘出来 .