我用下面的代碼來鎖定某些細胞VBA的Excel - 如何鎖定特定的細胞,但允許過濾和排序
Sub LockCell(ws As Worksheet, strCellRng As String)
With ws
.Unprotect
.Cells.Locked = False
.Range(strCellRng).Locked = True
.Protect Contents:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True, DrawingObjects:=True
End With
End Sub
它運作良好,鎖定那些特定列的內容的內容。問題在於,在電子表格本身上工作時,用戶無法對濾鏡進行排序,也無法將邊框應用於單元格,因爲這些Excel菜單項已禁用。我認爲AllowSorting:=True
,AllowFiltering:=True
和DrawingObjects:=True
將允許與AllowFormattingColumns:=True
和AllowFormattingRows:=True
允許調整大小相同的方式。
非常感謝您的幫助。
問候, 羅納德
我建議你重新閱讀Excel工作表Proptect的幫助文件,特別是關於_Allow_參數保護_worksheets_和locked_cells_。 AllowSorting:「排序範圍內的每個單元格必須解鎖或不受保護」AllowFiltering:「用戶可以更改過濾條件,但不能啓用或禁用自動過濾器」 – 2012-04-17 19:43:36
謝謝,雖然這很讓人傷心,因爲我需要能夠阻止某些內容,但允許用戶排序和過濾。有任何想法嗎? – 2012-04-17 22:13:42
1.)確保你的範圍不與其他範圍重疊。 2)解鎖表格中的所有單元格,然後將鎖定應用於範圍。 3.)「當表單受到保護時,必須解鎖要過濾的單元格。」 ...所以只是不要將這些'過濾器單元'作爲鎖定範圍的一部分。 https://msdn.microsoft.com/en-us/library/office/ff839866.aspx – 2016-06-29 17:28:22