vba userform 回指定 textbox

2014-07-28 9:24 pm
上網找過很多資料,好像無有說明這個...

比如有textbox1,2,3.當enter textbox1後驗證有錯時會反到textbox1欄.還是語法有錯.請幫忙解決...

Private Sub Textbox1_AfterUpdate()
If Len(Textbox1.Vaule) <> 8 Then '8是電話號碼的8位數
Me.Textbox1.SetFocus
End If
End Sub

thx

回答 (2)

2014-07-31 1:56 pm
✔ 最佳答案
你打錯字,係 Value, 唔係Vaule
我test過,應該work:
Private Sub TextBox1_Change()
If Len(TextBox1.Value) <> 8 Then
Me.TextBox1.SetFocus
End If
End Sub

2014-07-31 06:30:15 補充:
我話work意思係無syntax error,但係個Sub Routine只係check如果TextBox1嘅value係不等如8位數,就setfocus响TextBox1,無其他action。
如果你想佢當TextBox1嘅value係等如8位數時,跳去TextBox2,你就要:
Private Sub TextBox1_Change()
If Len(TextBox1.Value) <> 8 Then
Me.TextBox1.SetFocus
Else
Me.TextBox2.SetFocus
End If
End Sub

2014-07-31 06:41:40 補充:
再睇清楚你的問題,其實個Sub Routine係Change,所以當TextBox1有change就會自動執行,無需Click Enter
2014-07-29 8:42 am
你意思係有3個TEXTBOX分別係TEXTBOX1,2,3?
我唔係好明當ENTER TEXTBOX1後驗證有錯時會反到TEXTBOX1欄呢個位
你個電話號碼要分開3個TEXTBOX輸入?
ANYWAY
我諗應該係if Length(Textbox1.text) != 8呢到錯

2014-07-31 05:46:12 補充:
你講下你段CODE同你預期既結果有乜差別先
因為我一開始以為你打錯字 講緊VBS(A字係S字格黎)
我冇學過VBA但同VBS都差唔多
試下Private Sub TextBox1_Enter()
同埋我懷疑你係咪冇清空TEXTBOX1所以睇落去冇反應令你以為有錯
所以試下加句TEXTBOX1.TEXT = ""


收錄日期: 2021-04-15 16:02:38
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20140728000051KK00038

檢視 Wayback Machine 備份