我希望每次单元格包含特定文本时都会显示弹出消息。每次单词“Red Level”都在这个单元格中(I22,I23,I34,I35,I36),我想要一个MsgBox出现。 我在上面提到的所有单元格中使用数据验证列表,以确保单词“Red Level”始终相同。
我写了一些代码并且它有效,但只有当我在我的范围内有1个单元格时。当我尝试将其他单元格编号添加到我的代码中时,它仍将仅适用于第一个单元格而不适用于其余单元格。
以下是适用于一个单元格的代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Worksheets("A12").Range("I22").Value = "Red Level" Then
MsgBox ("Please call maintenance immediately to refill reservoir")
End If
End Sub
我以为我可以将其余的单元格添加到我的代码范围内,但这不起作用。 这就是我所做的但是没有用(MsgBox只会出现在“红色等级”在I22而不是在其他单元格中):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Sheets("A12").Range("I22,I23,I34,I35,I36").Value = "Red Level" Then
MsgBox ("Please call maintenance immediately to refill reservoir")
End If
End Sub
答案 0 :(得分:3)
您可以使用工作表的MATCH,但它不适用于不连续的单元格,因此必须进行两次检查。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
if not iserror(application.match("red level", Range("I22:I23"), 0)) or _
not iserror(application.match("red level", Range("I34:I36"), 0)) then
'Red Level is is at least one of the discontiguous cells
MsgBox ("Please call maintenance immediately to refill reservoir")
end if
End Sub
目前尚不清楚究竟是什么驱动了红色等级'出现在范围内(" I22:I23,I34:I36")。这可能更适合作为Worksheet_Change。因此,如果一个或多个单元格保持“红色等级”,则用户无法浏览工作表。
在相关说明中:这是在A12工作表的代码表中吗?如果是这样(作为工作表&代码表中的私有子),则不需要使用Worksheets("A12")
定义父工作表。我的代码删除了父工作表引用。
答案 1 :(得分:2)
为此,您可以采用两种方式(至少)。如果您想与public int? associated_user_id;
保持联系,则需要大量If
:
Or
但正如你所看到的,这将是一个非常长的路线,这不是最直接的阅读。这是另一种选择:
If Sheets("A12").Range("I22").Value = "Red Level" or Sheets("A12").Range("I23").Value = "Red Level" or ... Then
注意第二个只会触发一次,即使所有单元格都有“红色等级”,或者只有一个单元格有它。如果你想提醒用户有哪些单元格,你可以添加它,请告诉我。
答案 2 :(得分:0)
DATA选项卡有一个用于数据验证的向导, 第一个选项卡允许您定义条件。 此向导的第三个选项卡用于弹出消息。
你不需要为此编写代码,它已经内置于excel中。
答案 3 :(得分:0)
为什么不在想要的细胞范围内使用find?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Worksheets("A12").Range("I22,I23,I34:I36").Find(what:="Red Level", LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then MsgBox "Please call maintenance immediately to refill reservoir"
End Sub
并且,正如@Jeeped已经说过的,如果您监视事件的工作表是以“A12”命名的,那么您可以省略Worksheets("A12").
部分