2015-12-28 32 views
1

我發現與彈出式窗口相關的彈出框實際上是一個「提醒」框,而不是「錯誤」框。 Excel是否有任何一種「On Alert GoTo:」就像它的「On Error GoTo:」一樣?Excel對於「On Alert」是否具有VBA,就像它對「On Error」所做的那樣?

我可以完全禁用警報,但是當用戶輸入在透視表中找不到的錯誤名稱時,我無法警告用戶。這也重新分配的東西,我不想要的!

+0

你可以檢查每個'Worksheet_Change'並輸出錯誤信息,如果它不像你想要的那樣... –

+0

我想要怎樣才能實現這個...... 有沒有好的「檢查」,看看他們輸入的名稱是一個數據透視表上的名稱之一嗎? – Rich

+0

你可以循環名稱......我需要在我的電腦上檢查它......但應該有人能夠更快地給出解決方案,然後我......儘管如此,請儘快再次檢查此問題...... –

回答

0

通過數據驗證

一種方法預防警報,以確保用戶從預定義列表提供一個名稱是使用Excel's built-in data validation。您可以讓單元格提供基於動態範圍的自己的選擇下拉列表。您可以從Excel的數據選項卡和/或using VBA進行設置。引用是「動態的」,因爲如果引用範圍發生變化,下拉列表將隨之更改,如果引用範圍是表格的列,則列表將根據該列增長和縮小。

如果驗證失敗,可採取的操作也可以自定義,包括輸入消息和錯誤消息。使用VBA時的一個選項是禁用任何操作,而是使用驗證的Value屬性來確定運行時的操作。在單元格值更改之前觸發驗證,所以我的猜測是它會繼續提醒您看到的內容。


錯誤VS警報(可與我們的活動中起作用?)
至於更一般的問題有關,如果有一個On Error等效警報消息,我不覺得有什麼。 VBA不具備恆星錯誤處理功能。 On Error在消息框顯示之前處理運行時錯誤,而不是顯示事件,並且我不認爲有消息框顯示引起的任何VBA易於訪問的事件。

錯誤VS警報(我們能否與對象的工作?)
這聽起來像你發現Application.DisplayAlerts = False,我認爲這是對不亞於您可以用警報事。正如OP提到的那樣,這將很好地轉向警報,但仍然以編程方式檢查它們。你可以通過使用Err對象來做到這一點,但如果沒有警報對象,我認爲你不能用警報來做到這一點。

+0

我沒有提及我的清單是公司中每個人的主清單,但唯一可以輸入的有效名稱來自部門,我沒有收到這些名稱的清單。我必須通過一些非常迂迴的方法推斷出這些名字,而這些方法又來自一個數據透視表。我可以做你說的話,並從pivottable做一個動態範圍? 現在,我使用的方法正在檢查「名稱」是否出現在數據透視表中,如果沒有,則退出子數據庫。 :) – Rich

相關問題