我想阻止其他人使用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. 如何鎖定excel中的單元格
- 3. vba excel鎖定所有單元格
- 4. 在VBA中鎖定單元格
- 5. 在Excel VBA中打印特定單元格中的數據
- 6. 鎖定Excel中的特定單元格VBA
- 7. 如何在Excel中處理這個單元格鎖? (VBA)
- 8. 在Excel中動態鎖定單元格
- 9. 鎖定單元格小於零和空單元格VBA Excel
- 10. 鎖定/解鎖單元excel VBA
- 11. 鎖定工作表中的所有單元格Excel VBA
- 12. Excel VBA鎖列包含單元格中的特定值
- 13. 如何在導出到Excel時鎖定SSRS中的單元格?
- 14. 使用VBA在Excel中鎖定行
- 15. 鎖定Excel單元格中的單元格值
- 16. 如何使用VBA在Excel中設置特定單元格中的公式?
- 17. 使用officewriter在excel中可以鎖定單元格嗎?
- 18. 使用Excel VBA連接特定單元格數據
- 19. 如何使用Excel VBA計算單元格中特定字符的數量
- 20. 如何使用多個密碼鎖定Excel中的單個單元格?
- 21. Excel(VBA,Userform)如何將Listbox中的數據添加到特定的單元格?
- 22. 如何計算excel中使用VBA的註釋單元格?
- 23. 如何刪除空行的Excel單元格中使用VBA
- 24. 定位單元格的值在Excel VBA
- 25. 如何鎖定Excel工作表中的單元格內容
- 26. excel中的VBA格式單元格
- 27. Excel - 如何儘可能不使用宏來鎖定單元格
- 28. VBA Excel行中的單元格中斷
- 29. 在excel中使用VBA轉置循環中的單元格
- 30. 使用excel VBA在Excel單元格中粘貼excel公式(excel格式)?
http://stackoverflow.com/questions/17111648/how-to-lock-excel-cells-in-vba/ 18868676#18868676 – 2013-09-18 09:39:09