簡體   English   中英

Excel VBA 根據單元格值停止 msgbox 顯示循環

[英]Excel VBA stop msgbox display loop based on cell value

我有一張 Excel 表,其中有很多不同的 if 語句和其他在 VBA 中運行的函數。 我一直在兜圈子試圖解決以下問題:

使用 If 語句我想告訴用戶他們為回答問題而輸入的值是他們正在尋找大小的解決方案的不可用元素 - 這是用於大小/定價計算。 我無法共享該文件,並且下面的問題與該問題無關(這意味着我無法從下拉列表中選擇實際可用的選項 - 不僅如此)。

示例代碼:

單元格 B25 中的問題 - “你想要藍色的嗎?” 回答:“是”、“否”

代碼:

If Range("B35").Value = "Yes" Then
VBA.Interaction.MsgBox "Please contact Product Manager", , "Not available"
End If

選擇“否”不應阻止代碼的 rest 執行,也不應阻止用戶完成表格的 rest。 現在,出現消息框並且可以單擊“確定”,然后表單中的每個條目都會再次出現,因為 B35 的值當然沒有改變。 我嘗試了所有不同的方法來退出例程,甚至將例程放在不同的模塊中,但沒有任何樂趣。

有沒有人有任何想法? 我在想一個輔助細胞可能有用,但我無法理解它。 謝謝

在沒有看到您的實際工作表的情況下,僅從您提供的簡單示例開始,我只能說您需要使用一個表示您是否已經引發此錯誤的變量來限定您的 IF 語句。 例如:

Option Explicit

Public bChecked35 As Boolean


Sub abc()
    If Range("B35").Value = "Yes" And Not bChecked35 Then
        MsgBox "Please contact Product Manager", , "Not available"
        bChecked35 = True
    End If
End Sub

請注意,我定義了一個 boolean 變量來表示該單元格。 我在模塊級別定義了變量,所以只要打開工作簿,變量就會保留在 scope 中。

在您的情況下,您需要確定變量應該具有的 scope 級別......何時“重置”它等等。

如果您有很多單元格要驗證,也許您想要一個創建布爾集合的過程......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM