如何讓今日之前 儲存格 不能修改 刪除 也不能插入列

Private Sub Workbook_Open()
'請將程式碼複製到 :VBA視窗的ThisWorkbook中,存檔後重新開檔便可

    Dim 密碼 As String, Sh As Worksheet
    密碼 = "1234"
    Set Sh = ActiveSheet             '作用中的工作表
    'Set Sh = Sheet1                 'VBA 物件名稱
    'Set Sh = Sheets("測試工作表") '活頁簿工作表名稱
    'Set Sh = Sheets(2)              '活頁簿工作表的排序
    With ThisWorkbook                'ThisWorkbook  -> VBA 的活頁簿物件
        .Names.Add "日期", Date - 1, False     '活頁簿定義名稱, False->隱藏
        '執行一次後請在前面加上註解 " ' " 或 刪除 停止此程式碼執行
       
        If Val(Replace(.Names("日期"), "=", "")) <> Date Then   '不是今日
            .Names("日期").Value = Date                          '修改Value為今日
            .Names.Add "MyRange", Sh.UsedRange ', False  '定義名稱"MyRange" 範圍指定為 ActiveSheet.UsedRange
            '.Names.Add "MyRange", Sh.UsedRange , False     'False->定義名稱隱藏
             With Sh                                        '指定的工作表
                .Unprotect 密碼                             '取消工作表保護
                .Cells.Locked = False                       '取消儲存格鎖定->工作表的Cells
                .Cells.FormulaHidden = False                '取消儲存格隱藏->工作表的Cells
                Range("MyRange").Locked = True              '儲存格鎖定-> "MyRange"的範圍
                Range("MyRange").FormulaHidden = True       '儲存格隱藏-> "MyRange"的範圍
                .Protect 密碼                               '工作表設定保護
            End With
        End If
    End With
End Sub

沒有留言:

張貼留言