重复msgbox

时间:2017-11-17 16:07:33

标签: excel vba excel-vba

我创建了3个组合框,如下所示,用于从列表框中生成结果。如果3个组合框中的任何一个留空,我想生成一个错误框。但是,我编写的代码会生成多个错误消息框。我如何解决这个问题,以便msgbox只出现一次?

banner_logo_snippet = if self.logo.present?
        "<div class='m3-section m3-img_holder'><img src='#{self.logo(:small)}' /></div>"
      else
        ''
      end
      banner_snippet = <<"END"
  <div class="m3-news_wrap m3-mdcast-self slide" style="border: 1px solid ##{self.border_color}; background-color: ##{self.background_color};">
  <a href="#{self.link_url}" target="_blank">
    <div class="m3-article">
      #{banner_logo_snippet}
      <div class='m3-section m3-desc'>
        <h3 class='m3-title'>#{self.title}</h3>
        <p>#{self.subtitle}</p>
        <a href="#{self.link_url}" target="_blank">#{self.link_text}</a>
      </div>
    </div>
  </a>
</div>
END

1 个答案:

答案 0 :(得分:5)

如果您想在发送第一个MsgBox后拯救,请将Exit Sub置于其下。

If Searchoption = "" Or Search1 = "" Or Search2 = "" Then
    MsgBox "Select an option"
    Exit Sub
End If

否则,MsgBox调用在For...Next循环体内,将在每次满足条件的迭代中重复。

如果您需要在NextEnd Sub之间运行更多代码,无论是否显示MsgBox,您还可以Exit For退出循环但保留在程序中:

If Searchoption = "" Or Search1 = "" Or Search2 = "" Then
    MsgBox "Select an option"
    Exit For
End If