2010-08-24 97 views

回答

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 

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

+0

如果我想要做这项工作的响EOF细胞,我怎么能that.Pardon我的知识的缺乏做,我是新来编程。 – gizgok 2010-08-24 19:59:02

+0

范围(“A1:K47”) – JeffO 2010-08-25 01:19:24

+0

这使所有单元格只读。在我犯了一些错误。 私人小组Worksheet_Change(cellrange作为字符串) 范围(cellrange)。选择 Selection.Locked =真 个ActiveSheet.Protect内容:=真 结束小组 – gizgok 2010-08-25 11:08:45

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)。

+0

相当肯定,这是不是一个合适的回答 – titus 2016-09-21 08:17:31

0

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

希望这是你正在寻找。

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 
4

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

ActiveSheet.ProtectUser InterfaceOnly:=True 

有迹象表明,可以设置各种其他参数,将仍允许用户进行筛选,排序等,这应该是必需的帮助文件有一个完整的清单。

相关问题