如何在电子表格中将单元格设为只读?

时间:2010-08-24 19:07:27

标签: vba excel-vba spreadsheet excel

我正在使用数据库值填充电子表格。我填充数据的单元格,我希望它们对用户是只读的。我怎么能这样做?

5 个答案:

答案 0 :(得分:5)

取决于您希望如何选择范围。这只是一个单元格。如果您返回J1并更改该值,则会收到提示。

Private Sub Worksheet_Change(ByVal Target As Range)
  Range("J1").Select
  Selection.Locked = True
  ActiveSheet.Protect Contents:=True
  Range("K1").Select

End Sub

在工作表受到保护之前,单元格不会被锁定。默认情况下,所有单元格都设置为“已锁定”,因此您必须解锁希望用户能够更改的单元格。

答案 1 :(得分:5)

在这些情况下,我经常发现最好的方法是锁定工作表,但仅限用户使用UserInterfaceOnly参数,该参数仍允许与工作表进行无限制的程序化交互。

ActiveSheet.ProtectUser InterfaceOnly:=True

可以设置其他各种参数,这些参数仍然允许用户进行过滤,排序等。如果需要,帮助文件有一个完整的列表。

答案 2 :(得分:1)

您可以尝试保护细胞。或者您可以使用SelectionChange句柄事件自己编写代码......:

   Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Not Intersect(Selection, Range("A24:A50")) Is Nothing Then
        Range("B1").Select
      End If
    End Sub

答案 3 :(得分:0)

This page提供了一个小子,以保护一系列细胞。

摘录

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Not Intersect(Target, Range("H1:H10")) Is Nothing Then 
        Target.Offset(0, 1).Select 
        MsgBox "you may not enter that cell" 
    End If 
End Sub

保护H1:H10。 当用户想要在H1:H10内更改单元格时,警告消息表明可能未修改单元格,而是选择下一列(I)中的相邻单元格。

答案 4 :(得分:0)

在excel中,您可以转到“保护”菜单并指定需要密码才能修改的单元格。您也可以指定多个范围。

希望这就是你要找的东西。