我想阻止用户选择工作表中的特定列(比如列H:S)而不必保护工作表?我认为这可以通过VBA实现,即如果用户选择指定列中的任何单元格,则游标默认为单元格A1。
我有一个表格,其中包含一些公式,我希望防止被更改/覆盖。如果我尝试使用锁定单元格并保护工作表,则表格将停止运行(即,在表格下方添加数据时,表格中不会包含该表格)。如果工作表没有受到保护,则表格正常运行,允许我输入自动添加到表格中的数据。
编辑:
JvdD下面提供的解决方案,但我的调整:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column >= 8 And ActiveCell.Column <= 20 Then
ActiveSheet.Range("A1").Select
End Sub
答案 0 :(得分:2)
在这里,您可以编写整个工作簿的代码:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If ActiveCell.Column > 8 And ActiveCell.Column < 20 Then Activesheet.Range("A1").Select
End Sub
答案 1 :(得分:1)
应该真正使用Target对象,如下所示
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
Set Sh = ActiveSheet
If Target.Column >= 8 And Target.Column <= 20 Then Sh.Range("A1").Select
End Sub