標題:
如何利用VBA去驗證 表單上面的欄位屬性
[打印本頁]
作者:
Jared
時間:
2013-8-8 16:04
標題:
如何利用VBA去驗證 表單上面的欄位屬性
想請問一下大大
如果想要驗證輸入的欄位:
1. 輸入內容必須為日期。
2. 指定輸入的時間必須為2013/1/1 ~ 2013/12/31。
3. 如果輸入8/8,會自動更新為2013/8/8。
我用錄製操作的程式碼
Sub Macro14()
'
' Macro14 Macro
'
'
With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="1/31/2013", Formula2:="12/31/2013"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "請輸入正確的格式"
.InputMessage = ""
.ErrorMessage = _
"1.您輸入的不是日期。" & Chr(10) & "2.您的日期格式錯誤,正確規格為YYYY/MM/DD。" &Chr(10) & "3.您輸入的日期未介於2013/1/1~2013/12/31之間。" &Chr(10) &""
.IMEMode = xlIMEModeOff
.ShowInput = True
.ShowError = True
End With
End Sub
複製代碼
但是要怎麼修改放在表單裡面呢?
希望大大指導一下 ><
作者:
stillfish00
時間:
2013-8-8 20:25
回復
1#
Jared
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Const START_DATE = "2013/1/1"
Const END_DATE = "2013/12/31"
If TextBox1 = vbNullString Then Exit Sub '未填忽略
If IsDate(TextBox1) Then
If CDate(TextBox1) > DateValue(START_DATE) And CDate(TextBox1) < DateValue(END_DATE) Then
TextBox1 = Format(TextBox1, "yyyy/m/d")
Else
MsgBox "您輸入的日期未介於" & START_DATE & "~" & END_DATE & "之間。"
Cancel = True
End If
Else
MsgBox "您的日期格式錯誤,正確規格為YYYY/MM/DD。"
Cancel = True
End If
End Sub
複製代碼
作者:
Jared
時間:
2013-8-9 09:22
回復
2#
stillfish00
感謝大大的協助 ^^
想請問一下大大
驗證日期 必須包覆在 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
這個程式碼的屬性下面嗎? (@@)
作者:
stillfish00
時間:
2013-8-9 10:12
回復
3#
Jared
TextBox1 : 表單上用來輸入日期的文字方塊
TextBox1_Exit : 該文字方塊的Exit事件,表示當使用者打完日期後按tab或enter離開該文字方塊時會自己觸發,參數的cancel可設定使其不失去駐點(文字游標留在該文字方塊)。
前面的Code要放在該表單的程式碼頁面。
作者:
Jared
時間:
2013-8-9 11:42
回復
4#
stillfish00
^^ 謝謝大大的解答
我知道了
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)