我为自己和同事创建了一个门户,可以下载引用不同网络驱动器的工作簿模板,以便进行整合。
门户网站托管在“会计”(Accounting)(Z:/)驱动器中,但其中一个工作簿引用了不同驱动器“BI”(Y:/)中的电子表格。
这在我的机器上运行得非常好,但是我的同事有不同的驱动器号(例如M:/ Accounting,U:/ BI)。
有没有办法在网络中搜索名称并返回驱动器号?
这是我的代码的粗略近似值:
float
文件夹和文件将具有相同的名称,但是确保我所在部门的所有用户都可以使用这些工具而不必重新编程的最佳方法是什么,最好不必在运行时选择?< / p>
答案 0 :(得分:2)
您可以使用FileSystemObject's Drives property来实现此目的:
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
但使用UNC路径(例如WBaPath = "\\SERVER01\SHAREXYZ\FILES\BI-Accounting\myWorkbook.xlsm"
)通常更容易。