我正在使用数据库值填充电子表格。我填充数据的单元格,我希望它们对用户是只读的。我怎么能这样做?
答案 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中,您可以转到“保护”菜单并指定需要密码才能修改的单元格。您也可以指定多个范围。
希望这就是你要找的东西。