Sub Get_Drive_Letter()
Application.DisplayAlerts = False
strto = "BM"
strfrom = "Q"
Application.ScreenUpdating = False
Dim objWMIService As Object
Dim myrange As Range
LastRow = ActiveSheet.UsedRange.Rows.Count
For Each cell In Range(strfrom & "3:" & strfrom & LastRow).Cells
Set objWMIService = Nothing
Results = ""
On Error Resume Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & cell.Value & "\root\cimv2")
If Err.Number <> 0 Then
Range(strto & cell.Row).Value = Err.Number & ": " & Err.Description
Err.Clear
On Error GoTo 0
Else
Set colSettings = objWMIService.ExecQuery _
("Select * from Win32_logicaldisk")
For Each objlogicaldisk In colSettings
If objlogicaldisk.DriveType = 3 Then
If Results = "" Then
Results = Left(objlogicaldisk.Name, 1)
Else
Results = Results & ", " & Left(objlogicaldisk.Name, 1)
End If
End If
Next
objlogicaldisk = ""
Range(strto & cell.Row).Value = Results
End If
If cell.Row Mod 50 = 0 Then ActiveWorkbook.Save
Next cell
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
|