返回列表 上一主題 發帖

[發問] 驗證三次錯誤後關閉EXCEL

回復 1# cowww


    謝謝前輩發表此主題與情境
以下是後學學習方案,請前輩參考

Option Explicit
Dim N&
Sub TEST_20230329_1()
Application.DisplayAlerts = False
Dim strAdminPWord As String
Do
   strAdminPWord = InputBox("注意,此按鈕會讓白板資訊初始化!", "請輸入密碼")
   If strAdminPWord = "6556" Then
      MsgBox "密碼正確! ", vbOKOnly, "恭喜!"
      Exit Do
      ElseIf StrPtr(strAdminPWord) <> 0 Then
         MsgBox "密碼錯誤!", , "殘念~"
   End If
If N = 2 Then ActiveWindow.Close Else N = N + 1: MsgBox "不要氣餒,請繼續加油!"
Loop Until strAdminPWord = "6556"
MsgBox "繼續執行": N = 0
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 3# cowww


    謝謝前輩回復
後學學習情境解決方案如下,請前輩參考

Option Explicit
'↑強制明確宣告檔案中的所有變數,或允許隱含宣告變數
Dim N%
'↑宣告模組共用變數:N是短整數(次數累計)
Sub 按鈕1_Click()
Application.DisplayAlerts = False
'↑令程序不要問是否存檔!不存關閉檔案!
Dim strAdminPWord As String
'↑宣告變數:strAdminPWord是字串變數
Do
'↑設無限迴圈!要自己想辦法跳出迴圈
   strAdminPWord = InputBox("注意,此按鈕會讓白板資訊初始化!", _
   "請輸入密碼")
   '↑令strAdminPWord這字串變數是 使用者輸入的對話方塊,~~~~
   If strAdminPWord = "6556" Then
   '↑如果strAdminPWord變數是 "6556" ??
      MsgBox "密碼正確! ", vbOKOnly, "恭喜!"
      '↑令跳出提示窗:~~~~
      Exit Do
      '↑令程序跳出無限迴圈
      ElseIf StrPtr(strAdminPWord) <> 0 Then
      '↑令如果StrPtr()回傳值不是0 ??
         MsgBox "密碼錯誤! " & N + 1, , "殘念~"
         '↑令跳出提示窗:~~~~
         If N = 2 Then ActiveWindow.Close Else: N = N + 1
         '↑如果N這短整數是 2!:就令程序關閉此檔案視窗,
         '否則令N變數累加 1

      Else
         MsgBox "不要氣餒,請繼續加油!"
         '↑否則就令跳出提示窗:~~~~
         Exit Sub
   End If
Loop
N = 0
MsgBox "繼續執行"

'執行後方 密碼無異常就執行更新的動作
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題