I\'m trying to convert current shared folder path to unc path by manipulating current path with computer name. However result in compile error: expected array on the line\"e
I'm surprised that this line doesn't throw a Mismatch error:
CurrentPathA = Split(CurrentPath, "\")
The Split
function converts a string to an array. So, attempting to assign the result of Split
to a string variable should raise an error.
In any case, the Ubound
function requires an array. Thus, the error when you're doing Ubound(_string_)
instead of UBound(_array_)
.
Dim CurrentPathA As Variant
Or use file system object:
Function GetUNCLateBound(strMappedDrive As String) As String
Dim objFso As Object
Set objFso = CreateObject("Scripting.FileSystemObject")
Dim strDrive As String
Dim strShare As String
'Separate the mapped letter from
'any following sub-folders
strDrive = objFso.GetDriveName(strMappedDrive)
'find the UNC share name from the mapped letter
strShare = objFso.Drives(strDrive & "\").ShareName
'The Replace function allows for sub-folders
'of the mapped drive
GetUNCLateBound = Replace(strMappedDrive, strDrive, strShare)
Set objFso = Nothing 'Destroy the object
End Function
I just found and modified this, to which the credit is due, to be late-bound:
http://pagecommunication.co.uk/2014/07/vba-to-convert-a-mapped-drive-letter-to-unc-path/