查找分配给主驱动器

时间:2016-08-29 16:26:16

标签: excel vba excel-vba

我正在尝试找到像Environ这样的函数来查找我公司的主驱动器在特定PC上映射到的驱动器。

使用文件路径“G:\ Eworking \ SET \ Operations \ file”我知道我的PC已被映射,以便该文件路径在G驱动器内,但其他路径可能被不同地映射,所以我想确定它是哪个

我已经尝试了if else方法来完成字母表并且之前做了if Dir([filepath]) then(见下文),但我想知道是否有更好的方法可以做到这一点?

Sub LoopThroughDrives()
sFilePath As String

sFilePath = ":\Eworking\SET\Operations\file"

If Dir("A" & sFilePath) > 0 Then
    msgbox ("It's in drive A")
    Else
        If Dir("B" & sFilePath) > 0 Then
            msgbox ("It's in drive B")
            Else
                If Dir("C" & sFilePath) > 0 Then
                    msgbox ("It's in drive C")
                    Else
                        '...........................
                        'All other letters of the alphabet, checking each possibility
                        '...........................
                End If
        End If
End If

End Sub

2 个答案:

答案 0 :(得分:7)

你可以得到这样的驱动器号和路径:

For Each d In CreateObject("Scripting.FileSystemObject").Drives
    Debug.Print d.DriveLetter, d.Path, d.ShareName
Next

答案 1 :(得分:5)

使用ASCII字符的For ... Next循环似乎是合适的。

dim c as integer
for c = 65 to 90
    If CBool(Len(Dir(Chr(c) & sFilePath))) Then
        msgbox "It's in drive " & Chr(c)   '<~~msgbox, not magbox
        exit for
    end if
next c
if c > 90 then msgbox "never found"