Копировать макрос во вновь созданные рабочие книги - PullRequest
0 голосов
/ 21 октября 2019

Правильно, поэтому я ударил немного стены здесь. У меня есть этот прекрасный кусок кода, который действительно хорошо работает для защиты файлов.

Private Sub Workbook_Open()
 Dim wsh As Worksheet
 Dim rng As Range
 On Error Resume Next
 For Each wsh In Me.Worksheets
    wsh.Unprotect Password:="x"
    wsh.Cells.Locked = False
    Set rng = wsh.UsedRange.SpecialCells(xlCellTypeConstants)
    If Not rng Is Nothing Then
        rng.Locked = True
    End If
    Set rng = wsh.UsedRange.SpecialCells(xlCellTypeFormulas)
    If Not rng Is Nothing Then
        rng.Locked = True
    End If
    wsh.Protect Password:="x"
 Next wsh
End Sub

Но я хочу добавить его в новые файлы. Каждую неделю генерируется несколько новых файлов, но они также должны быть защищены. И это трудно сделать вручную.

Я пытался сохранить макрос в моем личном макросе. Но это не работает. Даже если я сделаю его обычным макросом вместо «при открытии».

Что будет работать, я думаю, что всякий раз, когда я открываю вновь созданную книгу, запускается макрос, который копирует код безопасности в новую книгу. Но я не знаю, как это сделать, поскольку имя также меняется каждый раз.

Итак ... идеи?

1 Ответ

0 голосов
/ 25 октября 2019

Хорошо, разобрался, благодаря SJR.

Я немного отредактировал код, чтобы он был

Sub Security()
 Dim wsh As Worksheet
 Dim rng As Range
 On Error Resume Next
 For Each wsh In Worksheets
    wsh.Unprotect Password:="x"
wsh.Cells.Locked = False
Set rng = wsh.UsedRange.SpecialCells(xlCellTypeConstants)
If Not rng Is Nothing Then
    rng.Locked = True
End If
Set rng = wsh.UsedRange.SpecialCells(xlCellTypeFormulas)
If Not rng Is Nothing Then
    rng.Locked = True
End If
wsh.Protect Password:="x"
 Next wsh
End Sub

, и превратил его в надстройку. И как неожиданный, но самый приятный сюрприз, теперь он также работает в книгах без макросов, Yay!

Так что, когда создается новый файл, я просто открываю его, чтобы проверить его, а затем нажимаю 1 кнопку налента, чтобы закрепить ее.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...