2017-10-07 42 views
0

我正在寻找基于某些单元格的内容在Excel工作表中显示弹出窗口。例如,如果B3,C3,D3或F3的内容不等于“选项A”或“选项B”,则显示带有“用户通知”文本的弹出窗口。我不希望使用数据验证来创建带有“选项A”,“选项B”和“其他”的下拉菜单,因为我希望用户能够在指定的单元格中描述“其他”(B3,C3,D3或F3),但我想通知他们需要描述的内容。有没有可以实现这一目标的宏?或者更好的是,我可能不知道的一些Excel函数并不需要宏?Excel中的条件弹出窗口

+0

你会希望vba在一个Worksheet_Change事件。 –

回答

1

将下列事件宏工作表中的代码区:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim CellsOfInterest As Range 
    Dim Rint As Range 
    Dim r As Range 
    Dim s As String 

    Set CellsOfInterest = Range("B3:D3, F3") 
    Set Rint = Intersect(Target, CellsOfInterest) 

    If Not Rint Is Nothing Then 
     For Each r In Rint 
      s = r.Value 
      addy = r.Address(0, 0) 
      If s <> "Option A" And s <> "Option B" And s <> "" Then 
       MsgBox "User Notification " & r.Address(0, 0) 
      End If 
     Next r 
    End If 
End Sub 

因为它是工作表的代码,这是非常容易安装和自动使用:

  1. 右键单击该选项卡名称靠近Excel窗口的底部
  2. 选择查看代码 - 这将弹出一个VBE窗口
  3. 粘贴东西并关闭VBE窗口

如果您有任何疑虑,请先在试用工作表上尝试。

如果保存工作簿,宏将与其一起保存。 如果您正在使用一个版本的Excel更高然后2003,你必须保存 该文件作为.XLSM而非的.xlsx

要删除宏:

  1. 弹出窗口VBE如上
  2. 清晰的代码进行
  3. 关闭VBE窗口

要了解更多关于一般的宏,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解更多有关事件宏(工作表的代码),请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

宏必须为此工作启用!