2017-02-14 25 views
-3

我正在查找一個vba以在選定的單元格在範圍內並且符合條件時彈出MsgBoxExcel VBA - 消息框,如果選中的單元格在一個範圍內並且符合條件

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,一箱味精應出現在下一列的同一行中的值。

示例:如果我選擇A7,則應出現值爲「3」的MsgBox

我嘗試了一些沒有成功的事情。

在此先感謝您的幫助!

MD

+0

那你試試? – nightcrawler23

回答

1

您可以從這裏開始。請注意,此代碼在單獨的模塊中進入工作表對象和而不是

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 

也這將仍然留在編輯模式下的單元格中MSGBOX被處理後,如果不予處理的代碼也

+0

您應該增強此解決方案:1)檢查'目標'是單個單元格範圍2)它包含「是」 – user3598756

+0

對不起。錯過了這一點。已修改代碼 – nightcrawler23

+1

@ user3598756順便說一句,雙擊將始終發生在單個單元格上。你看到任何其他情況? – nightcrawler23

0

嘗試下面的代碼(把你的相關的表的代碼中),它將檢查您是否雙擊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 
相關問題