Excel VBA - 如果所选单元格在一个范围内并且也符合条件,则显示消息框

Excel VBA - Msg Box if selected cell is in a range and also meet criteria

我正在寻找一个 vba 来弹出一个 MsgBox 当 selected 单元格在一个范围内并且也符合条件时。

示例:

Range: (A3:A7)
Criteria: "YES" 

     |        A          |        B         |    
      -------------------|------------------|
  1  |        NO         |                  |
  2  |        NO         |                  |
  3  |        YES        |         1        |
  4  |        YES        |         2        |
  5  |        NO         |                  |
  6  |        NO         |                  |
  7  |        YES        |         3        |

要求:如果我双击 A3、A4 或 A7,将出现一个消息框,其中包含同一行中下一列的值。

示例:如果我select A7,则应出现值为“3”的MsgBox

我尝试了几件事都没有成功。

在此先感谢您的帮助!

MD

您可以从这里开始。请注意,此代码进入工作表对象,进入单独的模块。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim myRange As Range
    Set myRange = Range("A3:A7")
    If Not Intersect(Target, myRange) Is Nothing And Target.Rows.Count = 1 And Target.Columns.Count = 1 Then
        If Target.Value = "YES" Then
            MsgBox (Target.Offset(0, 1))
        End If
    End If
End Sub

此外,在处理完消息框后,单元格仍将处于编辑模式,除非您也在代码中处理它

试试下面的代码(把它放在你相关的 sheet 的代码中),它会检查你是否 double-click 在 A 列的任何单元格上(只要你有数据在里面) ), 并检查该单元格的值是否等于 "YES".

代码

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A3:A" & Cells(Rows.Count, "A").End(xlUp).Row)) Is Nothing Then
        If Target.Value = "YES" Then
            MsgBox Target.Offset(0, 1).Value
        End If
    End If
End Sub