为不同的用户返回VBAnetworking驱动器盘符

我为自己和同事创build了一个门户网站,以下载参考不同networking驱动器的工作簿模板来整合。

该门户位于“Accounting”(Z:/)驱动器中,但其中一个工作簿在另一个驱动器“BI”(Y:/)中引用电子表格。

这在我的机器上出色地工作,但是我的同事有不同的驱动器字母(例如M:/ Accounting,U:/ BI)。

有没有办法searchnetworking名称并返回驱动器号?

这是我的代码的粗略近似:

Option Explicit Sub mySub() dim WBaPath as String dim WBbPath as String WBaPath = "Y:\BI-Accounting\myWorkbook.xlsm" WBbPath = "Z:\Portal\myOtherWorkbook.xlsm" dim WBa as Workbook dim WBb as Workbook set WBa = Workbooks.open(WBaPath) set WBb = ThisWorkbook 'Code to do stuff End Sub 

这些文件夹和文件将具有相同的名称,但是确保我的部门中的所有用户都可以使用这些工具而无需重新编程的最佳方法是什么?最好是无需在运行时进行select?

您可以使用FileSystemObject的Drives属性来实现这一点:

 Function FindDriveLetter(shareToFind As String) As String Dim fs As Object Dim dc As Object Dim d As Object Set fs = CreateObject("Scripting.FileSystemObject") Set dc = fs.Drives For Each d In dc If d.drivetype = 3 Then If UCase(d.sharename) = UCase(shareToFind) Then FindDriveLetter = d.driveletter Exit Function End If End If Next FindDriveLetter = "" End Function Sub Test() MsgBox FindDriveLetter("\\SERVER01\SHAREXYZ\FILES") ' use whatever share name you have mapped to your "Y" or "Z" drive ' instead of "\\SERVER01\SHAREXYZ\FILES" End Sub 

但使用UNCpath(例如WBaPath = "\\SERVER01\SHAREXYZ\FILES\BI-Accounting\myWorkbook.xlsm" )通常更容易。