我正在使用数据库值填充电子表格。我希望填充数据的单元格对用户只读。如何实现这一点?
UserInterfaceOnly
参数,它仍然允许与工作表进行无限制的编程交互。ActiveSheet.ProtectUser InterfaceOnly:=True
还有其他各种参数可以设置,这些参数仍然允许用户进行过滤、排序等操作。如果需要,帮助文件中有完整的列表。
取决于您想如何选择范围。这只是一个单元格。如果您返回到J1并更改值,则应该会提示。
Private Sub Worksheet_Change(ByVal Target As Range)
Range("J1").Select
Selection.Locked = True
ActiveSheet.Protect Contents:=True
Range("K1").Select
End Sub
只有在保护工作表之后,单元格才会被锁定。默认情况下,所有单元格都设置为已锁定,因此您需要解锁要允许用户更改的单元格。
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
这个页面提供了一个小型子程序来保护一系列单元格。
摘录
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
)中的相邻单元格。