ThisWorkbook.Path возвращает «G:», а не «G: \», когда файл сохраняется в корне «G:».Бросай "\" и ты будешь золотым.
К вашему сведению - я отладил это, поместив код в свою собственную функцию, чтобы упростить отладку (не нужно было открывать и закрывать файл для вызова функции), а затем прошел через эту функцию.Первый оператор «If» не выполнен, и проверка для пользователя никогда не выполнялась, поэтому я добавил Watch в ThisWorkbook.Path и увидел, что он возвращает «G:», а не G: \ ». Вот функция JosephD с исправлением:
Sub Workbook_Open()
If VBA.InStr(1, Application.Workbook.Path, "G:") > 0 _
Or VBA.InStr(1, Application.Workbook.Path, "\\NetWorkLocation\") > 0 Then
Select Case VBA.StrConv(VBA.Environ("username"), vbLowerCase)
Case "username1", "username2", "username3"
Case Else
VBA.MsgBox "Copy and paste this workbook to your desktop." _
& vbCrLf & "You may not open it from this location."
ActiveWorkbook.Close
End Select
End If
End Function