gpt4 book ai didi

vba - 当特定单元格包含特定文本时的 MsgBox

转载 作者:行者123 更新时间:2023-12-03 00:50:16 25 4
gpt4 key购买 nike

我希望每次单元格包含特定文本时都会显示一条弹出消息。每当“红色级别”一词出现在任何一个单元格(I22、I23、I34、I35、I36)中时,我希望出现一个 MsgBox。我在上述所有单元格中使用数据验证列表,以确保“红色级别”一词始终相同。

我编写了一些代码并且它有效,但仅当我的范围内有 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

最佳答案

您可以使用工作表的 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 工作表的代码表中?如果是这样(作为工作表代码表中的私有(private)子表),则无需使用 Worksheets("A12") 定义父工作表。我的代码已删除父工作表引用。

关于vba - 当特定单元格包含特定文本时的 MsgBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com