我想阻止其他人使用VBA編輯Excel表格中的單元格內容。是否有可能做到這一點?如何使用vba在Excel中鎖定單元格中的數據
11
A
回答
3
嘗試使用Worksheet.Protect
方法,像這樣:
Sub ProtectActiveSheet()
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, Password="SamplePassword"
End Sub
你應該,但是,關心包括在你的VBA代碼的密碼。如果你只是試圖建立一個簡單的屏障,以防止用戶發生像刪除公式這樣的小錯誤,你不一定需要密碼。
另外,如果你想看看如何做某些事情在Excel中的VBA中,嘗試錄製一個宏並查看它生成的代碼。這是開始使用VBA的好方法。
21
你可以先選擇你不想被他們的鎖定狀態設置爲false來保護(是用戶可編輯),該細胞:
Worksheets("Sheet1").Range("B2:C3").Locked = False
然後,您可以保護工作表,所有其他細胞將受到保護。 的代碼要做到這一點,而且還讓你的VBA代碼修改的細胞是:
Worksheets("Sheet1").Protect UserInterfaceOnly:=True
或
Call Worksheets("Sheet1").Protect(UserInterfaceOnly:=True)
0
Sub LockCells()
Range("A1:A1").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub
0
你也可以做到在工作表的捕獲的工作水平改變事件。如果你的需求更符合你的需求。允許基於價值觀,標準,ECT動態鎖定...
Private Sub Worksheet_Change(ByVal Target As Range)
'set your criteria here
If Target.Column = 1 Then
'must disable events if you change the sheet as it will
'continually trigger the change event
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "You cannot do that!"
End If
End Sub
2
比方說,例如,在一種情況下,如果從範圍A1要鎖定的細胞然後在下面I50是代碼:
Worksheets("Enter your sheet name").Range("A1:I50").Locked = True
ActiveSheet.Protect Password:="Enter your Password"
在另一種情況下,如果你已經有了那麼保護工作表按照以下代碼:
ActiveSheet.Unprotect Password:="Enter your Password"
Worksheets("Enter your sheet name").Range("A1:I50").Locked = True
ActiveSheet.Protect Password:="Enter your Password"
相關問題
- 1. 在vba excel中鎖定單元格
- 2. vba excel鎖定所有單元格
- 3. 鎖定Excel中的特定單元格VBA
- 4. 如何在Excel中處理這個單元格鎖? (VBA)
- 5. 在Excel中動態鎖定單元格
- 6. 鎖定單元格小於零和空單元格VBA Excel
- 7. Excel VBA鎖列包含單元格中的特定值
- 8. 鎖定工作表中的所有單元格Excel VBA
- 9. 鎖定Excel單元格中的單元格值
- 10. 使用Excel VBA連接特定單元格數據
- 11. Excel(VBA,Userform)如何將Listbox中的數據添加到特定的單元格?
- 12. 如何計算excel中使用VBA的註釋單元格?
- 13. 定位單元格的值在Excel VBA
- 14. 如何鎖定Excel工作表中的單元格內容
- 15. VBA Excel行中的單元格中斷
- 16. 在excel中使用VBA轉置循環中的單元格
- 17. 使用excel VBA在Excel單元格中粘貼excel公式(excel格式)?
- 18. 粘貼到Excel鎖定的單元格
- 19. 如何在Excel VBA中查找具有連續數據的單元格?
- 20. 如何在Excel VBA中用逗號合併選定的單元格到一個單元格中?
- 21. 使用VBA在excel中對單元格內的值進行交換使用VBA
- 22. VBA Excel R1C1Formulas使用單元格方法
- 23. 如何使用VBA從單元格值控制Excel PIVOT表格
- 24. ASP.NET導出到Excel - 鎖定單元格
- 25. Excel鎖定單元格查詢
- 26. 在Excel中確定單元格中的#
- 27. 如何在Excel中使用VBA替換單引號//在Excel中使用VBA
- 28. 如何從excel數據中讀取特定單元格到Pyomo
- 29. 使用excel VBA顯示相鄰單元格中單元格值的變化
- 30. 在excel vba中找到單元格引用的簡單方法
http://stackoverflow.com/questions/17111648/how-to-lock-excel-cells-in-vba/ 18868676#18868676 – 2013-09-18 09:39:09