I am trying to convert the current path to a shared folder to a path using the current path with the name of the computer. However, the result is a compilation error: the expected array in the string "elem = UBound (CurrentPathA)" in Public Function UNCpath (). Can you guys tell me that there seems to be a problem causing this problem? and perhaps share the best ideas to get the wrong way?
Option Explicit
Private Declare PtrSafe Function fnGetComputerName Lib "kernel32" Alias "GetComputerNameW" (ByVal lpBuffer As LongPtr, ByRef nSize As Long) As Long
Private Declare Function fnGetComputerName Lib "kernel32" Alias "GetComputerNameW" (ByVal lpBuffer As Long, ByRef nSize As Long) As Long
Public Function GetComputerName() As String
Const MAX_COMPUTERNAME_LENGTH As Long = 31
Dim buf As String, buf_len As Long
buf = String$(MAX_COMPUTERNAME_LENGTH + 1, 0)
buf_len = Len(buf)
If (fnGetComputerName(StrPtr(buf), buf_len)) = 0 Then
GetComputerName = "ErrorGettingComputerName"
Else
GetComputerName = Left$(buf, buf_len)
End If
End Function
Public Function UNCpath() As String
Dim CompName As String, CurrentPath As String, CurrentPathA As String
CompName = GetComputerName()
CurrentPath = ThisWorkbook.Path
CurrentPathA = Split(CurrentPath, "\")
elem = UBound(CurrentPathA)
CurrentPath = CurrentPathA(elem)
UNCpath = "\\" & CompName & "\" & CurrentPath
End Function
source
share