保护所有工作表以防更改

问题描述 投票:0回答:1

我希望通过Access实用地保护Excel工作簿中的工作表,以使用户无法更改公式。怎么做?

ms-access access-vba
1个回答
0
投票

首先,您希望用户能够像这样进行编辑的解锁单元格:

  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
© www.soinside.com 2019 - 2024. All rights reserved.