Я хочу создать макрос VBA, который будет делать следующее:

Файл Excel с макросом должен открываться только при открытии файла из определенной папки в каталоге Windows.

Если он не открыт из указанной папки, он должен показать сообщение об ошибке msgbox и автоматически закрыть файл.

Используемый нами файл уже полностью защищен, однако пользователи по-прежнему могут копировать его из существующей папки, например, на свой рабочий стол. Мы хотим запретить им использовать более старую версию, принимая только открытие файла из определенного каталога. Я пытался найти решение в Интернете, но не нашел его.


  • Открывается из включает в себя ярлыки.

  • Это корпоративный файл, но в нашей среде используются макросы.

  • Мне нужен код, где я могу отредактировать имя папки, чтобы оно было таким, каким я хочу (поэтому мы всегда можем изменить его позже)

1 ответ1

1

Поместите это в эту рабочую книгу в VBA Editor:

Private Sub workbook_open()

Dim strPath As String
strPath = "c:\username\path\to\workbook"

If Not Application.ActiveWorkbook.Path = strPath Then
    MsgBox ("This is an old version, please use the correct version at " & strPath)
    Application.ActiveWorkbook.Close
End If

End Sub

Просто измените strPath на путь, который вы хотите использовать. Вы также можете заменить ActiveWorkbook на ThisWorkbook если чувствуете необходимость.

Если он находится в общем сетевом ресурсе, обязательно проверьте, что дает вам .path , так как он может заменить сетевое расположение буквой диска, которая может меняться у разных пользователей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .