2017-10-07 38 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

宏必須爲此工作啓用!