- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
8#
發表於 2012-12-7 09:32
| 只看該作者
回復 5# acdx - Option Explicit
- Dim Msg As Boolean '預設值: False
- Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
- Msg = True '表單關閉:變數設定
- End Sub
- Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) '表單關閉後還會執行此程式
- If Msg = False Then If Text檢查(TextBox1) Then Cancel = True
- 'Cancel: False 表示控制項不處理事件(預設);True 表示應用程式須處理此事件,且駐點仍保留在目前控制項。
- End Sub
- Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
- If Msg = False Then If Text檢查(TextBox2) Then Cancel = True
- End Sub
- '如還有TextBox 依樣畫葫蘆
- 'Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
- ' If Msg = False Then If Text檢查(TextBox3) Then Cancel = True
- 'End Sub
- Private Function Text檢查(Box As MSForms.TextBox) As Boolean
- Dim S As Integer
- If Abs((Int(Val(Box))) <> Box Or Box < 0) Then
- S = InStr(Box, ".")
- Box.SelStart = IIf(Mid(Box, 1, 1) = "-", 0, S - IIf(S > 0, 1, 0))
- Box.SelLength = IIf(Mid(Box, 1, 1) = "-", 1, Len(Box) - S + 1)
- MsgBox "需輸入正整數"
- Text檢查 = True
- End If
- End Function
複製代碼 |
|