- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个命名范围,我想防止用户修改它,所以我使用基本的 Worksheet_Change 例程:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("MyRange")) Is Nothing Then
Application.Undo
MsgBox "You're not allowed to do this!"
End If
Application.EnableEvents = True
End Sub
这是我为我的工作表编写的第一个例程,它似乎工作得很好。每当用户尝试删除或更改命名范围内的某些单元格时,事件就会触发,所做的更改将被撤销。还会出现消息框:“不允许您这样做!”。
但是,如果用户选择了不允许输入数据的范围内的单元格,我需要提醒用户。为此,我使用 Worksheet_SelectionChange:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("MyRange")) Is Nothing Then
MsgBox "This cells is protected."
End If
End Sub
如果我只是去选择不同的单元格,Worksheet_SelectionChange 就会起作用。我的意思是,事件按预期触发,并显示消息“此单元格 protected ”。按预期显示。问题是当我更改命名范围内某些单元格的值时。这两个事件都被解雇了。它显示“你不被允许这样做!”然后是“此单元格 protected 。”
如何防止 Worksheet_SelectionChange 在 Worksheet_Change 运行后触发?...
编辑:我忘了解释一些事情。当我选择一些“ protected 单元格”时,Worksheet_SelectionChange 会触发。如果我只是删除那个单元格的内容,那么 Worksheet_Change 会按预期触发,并且不会发生其他任何事情。正如预期的那样。
最佳答案
这是你正在尝试的吗?
Option Explicit
Dim runThis As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If runThis = False Then
runThis = True
Exit Sub
End If
If Not Intersect(Target, Range("MyRange")) Is Nothing Then
MsgBox "This cells is protected."
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("MyRange")) Is Nothing Then
Application.Undo
MsgBox "You're not allowed to do this!"
runThis = False
End If
Application.EnableEvents = True
End Sub
关于excel - Worksheet_SelectionChange 被不当解雇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66778563/
我正在编写一个 native iOS 7 应用程序,需要从 JSON api(由我控制)检索数据。 JSON 输出示例如下: { "id" : "544", "name" : "1900 Green
我是一名优秀的程序员,十分优秀!