美文网首页
使用Excel制作部分表格禁止编辑的信息统计表

使用Excel制作部分表格禁止编辑的信息统计表

作者: 养猫的老鼠 | 来源:发表于2019-08-27 14:58 被阅读0次

    背景

    需要做一个物料信息统计表,Item数量尽可能少,结构清晰,有数据透视图,部分表格禁止编辑。

    步骤

    首先需要明确表的结构,这里我采用的是“组合”,将Item按照父子的从属关系进行区分罗列,进而组合。如下图所示


    image.png

    接下来就是做数据透视图,正常做法,略去详细步骤。
    最后就是部分列的保护功能,如果仅仅只是保护部分数据,可以直接在“审阅/允许编辑区域”中进行操作,但有个问题,这样会导致组合在不输入密码的情况下无法使用。因此这里采用VBA的方式进行操作。


    组合不能用的保护方式
    在sheet标签处右键查看代码,进入VBA编辑区,在ThisWorkbook处贴入以下代码,保存退出,重新打开就可以操作了。
    这里,我指定密码为PWD,A,B,D,G,H,I列为不可修改,具体可以根据自己的实际情况进行修改。关于Protect后各个参数的含义,大家可以查看下面的图示。

    Private Sub Workbook_Open()
    Dim xWs As Worksheet
    Set xWs = Application.ActiveSheet
    xWs.Protect Password:="PWD", UserInterfaceOnly:=True, >AllowInsertingColumns:=False, AllowInsertingRows:=True, >AllowFiltering:=True, AllowUsingPivotTables:=True, >AllowFormattingCells:=True
    xWs.Range("A:A,B:B,D:D,G:G,H:H,I:I").Locked = True
    xWs.EnableOutlining = True
    xWs.EnableAutoFilter = True
    End Sub

    Protect参数命令图示

    VBA加密,目前为止,我们的密码是直接写在了VBA里,这就失去意义了,为VBA工程加上密码,确保安全。
    在下图所示为止,增加密码保护。


    VBA加密

    至此,我们已经实现了既定的目标。
    这里有几个地方,还是想再强调下:

    1. VBA脚本要放在ThisWorkbook,不能放在模块和sheet里。上面那段代码,只有在运行后是起作用的,如果放在sheet或者模块里,每次打开excel文件,依然无法使用组合。放在ThisWorkbook中,每次打开excel文件都会执行一遍这段代码。
    2. excel文件需要保存为xlsm格式,因为包含宏。

    参考文档
    参考文档
    参考文档
    参考文档
    参考文档

    相关文章

      网友评论

          本文标题:使用Excel制作部分表格禁止编辑的信息统计表

          本文链接:https://www.haomeiwen.com/subject/vkdeectx.html