[英]Protect worksheet not workbook
我有一個Excel電子表格,它需要保護大多數單元格免受編輯。 我無法以通常的方式保護工作表,因為我與小組一起工作(頂部的小號+用於擴展某些列)。
我找到了一個VBA宏來保護我的工作表,但在Excel 2010中注意到,即使整個工作簿仍受保護,我也可以“取消保護工作表”並修改所有內容。
這是我在“ ThisWorkbook”上使用的宏:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="nopassword"
If Range("C3").Value = "protect" Then
Range("C4:C65536").Locked = True
Else
Range("C4:C65536").Locked = False
End If
ActiveSheet.Protect Password:="fakepass"
End Sub
Private Sub Workbook_Open()
Dim x As Long
For x = 1 To ActiveWorkbook.Sheets.Count
With ActiveWorkbook.Sheets(x)
.Protect UserInterfaceOnly:=True
.EnableOutlining = True
End With
Next
End Sub
如何修改此代碼以與工作表1一起使用?
我知道這不是最安全的保護方式,而只是為了防止人們意外修改電池。
如果您更改:
ActiveSheet.Protect Password:="fakepass"
至:
Worksheets("Sheet1").Protect Password:="fakepass"
它僅適用於Sheet1,而不是僅適用於活動表。
或者,您可以創建一個宏來保護所有工作表,例如:
Sub ProtectAll()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Protect Password:="fakepass", DrawingObjects:=True, Contents:=True, Scenarios:=True
Next ws
End Sub
然后調用它到您的主代碼中?
ActiveSheet.Unprotect Password:="nopassword"
將僅引用您正在使用的任何工作表。
Sheets("Sheet1").Activate
會將活動工作表設置為sheet1,無論選擇了哪個工作表。
那是你的追求嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.