一個朋友突然問我:excel中保護工作表那種功能可不可以用在單元格上,比如隻保護某一個單元格。聽到這個問題,我的第一感覺,應該可以吧,都有保護工作表的功能了,為什麼沒有保護單元格的功能啊?但是,接下來的十分鐘裡,我絞盡腦汁,各種搜索,也沒有找到有這麼一個功能。不過最後倒是想到一個辦法,通過VAB代碼動态鎖定/解鎖工作表的方式來實現鎖定任意一個單元格的功能。
舉例子了:
比如,我們要鎖定A1這個單元格,即,除了A1以外的其他任意單元格都可以編輯,隻有A1不能編輯,VBA中如何實現呢?
第一步,選擇事件Worksheet_SelectionChange,這個事件的意思是我們在切換單元格的時候觸發。
第二步,寫一個簡單的判斷條件,代碼如下:
If Target.Row =1 and Target.Column =1 Then
ActiveSheet.protect
Else
ActiveSheet.Unprotect
End If
上述代碼的意思是:如果當前獲取焦點的單元格是第一行第一列,那麼鎖定工作表(就是所有的單元格都不能編輯),如果當前獲取焦點的單元格不是第一行第一列,那麼解鎖工作表(就是所有的單元格都可以編輯)。
是不是很簡單啊,如果你擔心别人修改你的代碼,還可以給代碼加一個密碼:
保護代碼
以上,就是Excel保護任意單元格的實現過程。
,