假設我們開始與工作表解鎖和片材密碼保護,密碼中的所有單元格:
6LgSdHjc2uOssv0e1LDI
以下事件宏將:
- 取消保護工作簿
- 檢測條目塔A
- 地方在列乙的用戶名和在列中的日期/時間戳ç
- 鎖定在列中的條目A,B,C
- 重新保護工作表。
這正好工作表中的代碼區:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range, MyPass As String, sh As Worksheet
Dim unit As Range
Set A = Range("A:A")
MyPass = "6LgSdHjc2uOssv0e1LDI"
Set sh = ActiveSheet
If Intersect(Target, A) Is Nothing Then Exit Sub
Set unit = Union(Target, Target.Offset(0, 1), Target.Offset(0, 2))
Application.EnableEvents = False
sh.Unprotect (MyPass)
unit.Locked = False
Target.Offset(0, 1) = Environ("Username")
Target.Offset(0, 2) = Now()
unit.Locked = True
sh.Protect (MyPass)
Application.EnableEvents = True
End Sub
因爲它是工作表的代碼,它是非常容易安裝和自動使用:
- 右鍵單擊該選項卡名稱靠近Excel窗口的底部
- 選擇查看代碼 - 這將彈出一個VBE窗口
- 粘貼東西並關閉VBE窗口
如果您有任何疑慮,請先在試用工作表上嘗試。
如果保存工作簿,宏將與其一起保存。 如果您正在使用一個版本的Excel更高然後2003,你必須 將文件保存爲.XLSM而不是。XLSX
要刪除宏:
- 彈出VBE窗口如上
- 清晰的代碼進行
- 關閉VBE窗口
要了解更多關於宏一般,參見:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
要了解更多有關事件宏(工作表的代碼),請參閱:
http://www.mvps.org/dmcritchie/excel/event.htm
宏必須爲此工作啓用!
嗨,我需要在給定範圍內的數據輸入後鎖定每個單元格。就像我一次輸入Y或N一樣。不能再編輯它。以下是我的代碼 – 3689 2015-02-23 12:27:32