標題:
[發問]
VBA設定工作表保護與解除
[打印本頁]
作者:
taiwan
時間:
2014-11-10 13:26
標題:
VBA設定工作表保護與解除
本帖最後由 taiwan 於 2014-11-10 13:27 編輯
我有一個資料Sheet 稱為sample
我在此資料表內設一個按鈕,這按扭功能會對 sample資料內容進行更新
為了避免使用者把資料按到空白鍵之類,或誤觸
所以要設置密碼
那在功能邏輯上要先設解除工作表密碼在設保護工作表密碼
那這樣子在更新資料內容時比較不會有誤
在執行程式後發現有一個問題是 先解除密碼的sub功能失效
導致資料無法寫入更新 會出現1004錯誤代碼
程式碼如下:
'保護工作列表
Sub LockLong()
On Error Resume Next
ActiveSheet("sample").Unprotect "1234"
ActiveSheet("sample").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet("sample").EnableSelection = xlNoRestrictions
End Sub
複製代碼
作者:
taiwan
時間:
2014-11-10 13:33
自己來回答也分享各位
1.不要設保護及解除保護各一個sub
2.密碼為大小寫請都改為小寫
3.Unprotect 及Protect都要在後面多寫一段
Password:=
確保執行上可行
Sub LockLong()
On Error Resume Next
ActiveSheet("sample").Unprotect [color=Red]Password:[/color]="1234"
ActiveSheet("sample").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet("sample").EnableSelection = xlNoRestrictions
End Sub
複製代碼
作者:
taiwan
時間:
2014-11-11 09:04
還有一個問題
語法中以下此語法在我excel無法使用
ActiveSheet("xxx").Protect Password:="1234"
複製代碼
我得用以下這斷才能執行 很納悶
Workbooks("xxx").Worksheets("xx").Protect Password:="1234"
複製代碼
作者:
GBKEE
時間:
2014-11-11 15:59
回復
3#
taiwan
Sub Ex()
Sheets("xxx").Protect "1234"
'或是
ActiveSheet.Protect "1234"
End Sub
複製代碼
作者:
taiwan
時間:
2014-11-12 08:47
回復 taiwan
GBKEE 發表於 2014-11-11 15:59
我會在試試看
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)