返回列表 上一主題 發帖

TextBox如何設定只能是整數?

回復 1# acdx
Enter、Exit 事件
Enter 主要發生在一個控制項,從同一表單上的另一個控制項取得駐點之前;Exit 會在一個控制項失去駐點時發生。
  1. Option Explicit
  2. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  3.     If IsNumeric(TextBox1) Then
  4.         TextBox1 = Abs(Int(TextBox1))
  5.     Else
  6.         TextBox1 = ""
  7.     End If
  8. End Sub
複製代碼

TOP

回復 5# acdx
  1. Option Explicit
  2. Dim Msg As Boolean          '預設值: False
  3. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  4.     Msg = True      '表單關閉:變數設定
  5. End Sub
  6. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) '表單關閉後還會執行此程式
  7.      If Msg = False Then If Text檢查(TextBox1) Then Cancel = True
  8.      'Cancel: False 表示控制項不處理事件(預設);True 表示應用程式須處理此事件,且駐點仍保留在目前控制項。
  9. End Sub
  10. Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  11.     If Msg = False Then If Text檢查(TextBox2) Then Cancel = True
  12. End Sub
  13. '如還有TextBox 依樣畫葫蘆
  14. 'Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  15. '   If Msg = False Then If Text檢查(TextBox3) Then Cancel = True
  16. 'End Sub
  17. Private Function Text檢查(Box As MSForms.TextBox) As Boolean
  18.     Dim S As Integer
  19.     If Abs((Int(Val(Box))) <> Box Or Box < 0) Then
  20.         S = InStr(Box, ".")
  21.         Box.SelStart = IIf(Mid(Box, 1, 1) = "-", 0, S - IIf(S > 0, 1, 0))
  22.         Box.SelLength = IIf(Mid(Box, 1, 1) = "-", 1, Len(Box) - S + 1)
  23.         MsgBox "需輸入正整數"
  24.         Text檢查 = True
  25.     End If
  26. End Function
複製代碼

TOP

        靜思自在 : 太陽光大、父母恩大、君子量大,小人氣大。
返回列表 上一主題