簡體   English   中英

VBA暫停代碼並等待用戶交互

[英]VBA Pause code and wait for user interaction

我有在其中添加了根據某些條件彈出的錯誤框的代碼。 條件是:

If Range (Q2:Q) = "" Then
ErrorFrame.Visible = True

當錯誤框彈出時,有兩個我要添加按鈕的選項:

  1. 繼續:無論Q列中是否有數據,繼續操作都會繼續執行宏

  2. 停止:停止將結束宏,以便用戶可以將數據輸入到Q列中並重新運行宏

我也希望這樣做,以便當錯誤框彈出時,代碼被暫停並且直到用戶選擇其中一個選項時才繼續。

誰能給我一個例子,說明它如何工作? 我在思考如何編寫此代碼時遇到了麻煩。 非常感謝任何幫助,謝謝!

我自己想通了:

If WorksheetFunction.CountA(Range("Q:Q")) = 0 Then
UserForm1.ErrorFrame.Visible = True
    Do While UserForm1.ErrorFrame.Visible = True
    DoEvents
    Loop
    If ContinueFlag = True Then GoTo Line1
End If

Line1:

基本上,對於繼續按鈕,我只是在其上添加了一個標志,因此當單擊它時將使該標志為true。 然后在您看到的函數中,當標志為true時,它將轉到第1行,然后繼續執行代碼並退出Do While循環。

我敢肯定,這可能不是最有效的方法,但是請讓我知道你們的想法,以及是否有更好的方法可以做到。

暫無
暫無

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

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