2015-10-28 50 views
0

我想阻止用戶能夠編輯特定範圍的單元格。但VBA應該保持這樣做的能力。因此,當按下Excel中的按鈕時,VBA應該能夠對單元格的值進行修改,而用戶無法手動執行此操作。防止用戶編輯單元格手動範圍(但允許VBA執行)

剛剛發現其中相當符合我的要求的其他toppic一個sollution:How to protect cells in Excel but allow these to be modified by VBA script

只有我還在質疑的是,如果這是alwso證明3在一定範圍內,而不是整個工作簿?

+0

爲防止用戶修改單元格,請保護它們(和工作表)。當您需要使用VBA修改它們時,只需對其進行解除保護,修改並在保護之後進行重新保護。 –

+0

然後,我最終會保護和不保護endles時間,因爲我的代碼包含很多用戶/ VBA輪流編輯工作簿的部分。儘管謝謝! – Cornelis

+1

沒有其他選擇,對不起。但是您可以讓兩個Sub在VBA處理的開始和結束時保護和解除您調用的單元。 –

回答

2

Sollution

Worksheet.Protect 「密碼」,UserInterfaceOnly:=真

申請在一定範圍內(我客串了folloing代碼應該工作...?):

Worksheet.Sheets(「ControlSheet」)。Range(「M5:N19」)。Protect「Password」,UserInterfaceOnly:= True

1

與VBA保護工作表:

Dim sh As Worksheet 
Dim myPassword As String 
myPassword = "password" 

For Each sh In ActiveWorkbook.Worksheets 
    sh.Protect Password:=myPassword 
Next sh 

現在,如果你想修改與VBA的東西就可以取消他們:

Dim sh As Worksheet 
Dim myPassword As String 
myPassword = "password" 

For Each sh In ActiveWorkbook.Worksheets 
    sh.Unprotect Password:=myPassword 
Next sh 

再後來又保護他們。

+0

PS bas de beer is een bazen spel #90s – Cornelis

相關問題