Защита всех рабочих листов от изменений - PullRequest
1 голос
/ 27 февраля 2020

Я хотел бы прагматично защитить рабочие листы в своей рабочей книге Excel от Access, чтобы пользователи не могли изменять формулы. Как это сделать?

1 Ответ

1 голос
/ 27 февраля 2020

Прежде всего разблокируйте ячейки, которые вы хотите, чтобы пользователь мог редактировать следующим образом:

  Cells(1, 1).Locked = False

Передайте ваш wokrkbook этой функции:

Public Sub ProtectWorksheets(workbook As excel.workbook)
    On Error GoTo ErrHandler_
    Dim ws As excel.Worksheet

    For Each ws In workbook.Worksheets

    'Protect Method with all the parameters passed in it
        ws.Protect _
            Password:="password", _
            DrawingObjects:=False, _
            Contents:=True, _
            Scenarios:=True, _
            UserInterfaceOnly:=True, _
            AllowFormattingCells:=True, _
            AllowFormattingColumns:=True, _
            AllowFormattingRows:=True, _
            AllowInsertingColumns:=True, _
            AllowInsertingRows:=True, _
            AllowInsertingHyperlinks:=True, _
            AllowDeletingColumns:=True, _
            AllowDeletingRows:=True, _
            AllowSorting:=False, _
            AllowFiltering:=False, _
            AllowUsingPivotTables:=False
    Next
ExitProc_:
    DoCmd.Hourglass False
    Exit Sub
ErrHandler_:
    'Call LogError(Err.Number, Err.Description, "ExcelUtilities", "ProtectWorksheets")
    Resume ExitProc_
    Resume ' use for debugging
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...