vba 判断文本框内容是否为空_校验数据一旦失败,VBA代码自动控制焦点返回的另一备选方案...
大家好,我們今日繼續(xù)講解VBA代碼解決方案的第95講內容:如果文本框的錄入校驗不能通過,光標仍返回文本框中的另一方案。在上一講中我講了利用EXIT事件中的Cancel 參數的設置來達到我們的目的(值是True)。這種方法中大家要掌握的是EXIT事件的意義和Cancel 參數的意義。在實際利用的時候往往不是很多。今天講到的方法往往會有廣泛的應用。
今天講使用SetFocus方法對光標進行主動的設置,這時很實際的用法,通過設置可以讓光標按照自己的要求出現在你需要的控件上。SetFocus方法就是將焦點移動到對象中,語法如下 :object.SetFocus
參數object.是必須的,是一個有效的對象。對象必須是 Form 對象、MDIForm 對象或者能夠接收焦點的控件。
在調用 SetFocus 方法以后,任何的用戶輸入將指向指定的窗體或控件。需要注意的是焦點只能移到可視的窗體或控件上。因為在窗體的 Load 事件完成前窗體或窗體上的控件是不可視的,所以如果不是在 Form_Load 事件過程完成之前首先使用 Show 方法顯示窗體的話,是不能使用 SetFocus 方法將焦點移至正在自己的 Load 事件中加載的窗體的。也不能把焦點移到 Enabled 屬性被設置為 False 的窗體或控件。如果已在設計時將 Enabled 屬性設置為 False,必須在使用 SetFocus 方法使其接收焦點前將 Enabled 屬性設置為 True。
我們看下面的實測代碼,如下所示。
Private Sub CommandButton1_Click()
If TextBox1.Text <> "" And TextBox2.Text <> "" Then
Sheets("sheet11").Range("a65536").End(xlUp).Offset(1, 0) = TextBox1.Text
TextBox1.Text = ""
Sheets("sheet11").Range("a65536").End(xlUp).Offset(0, 1) = TextBox2.Text
TextBox2.Text = ""
TextBox1.SetFocus
Else
If TextBox1.Text = "" And TextBox2.Text <> "" Then
MsgBox "錄入數據1為空,請輸入正確的數字!"
TextBox1.SetFocus
End If
If TextBox1.Text <> "" And TextBox2.Text = "" Then
MsgBox "錄入數據2為空,請輸入正確的數字!"
TextBox2.SetFocus
End If
If TextBox1.Text = "" And TextBox2.Text = "" Then
MsgBox "錄入數據1和2均為空,請輸入正確的數字!"
TextBox1.SetFocus
End If
End If
End Sub
代碼解析:輸入按鈕的Click事件,把文本框數據錄入到工作表A列最后一個單元格中并重新選擇文本框準備下一次輸入。
第2行代碼,在輸入到工作表前檢查文本框是否為空。
第3、4、5、6行代碼,如果文本框不為空,錄入數據到工作表并清空文本框內容。
第7行代碼,使用SetFocus方法將光標返回到文本框1中以便重新輸入。
后續(xù)的代碼不再講解,請讀者自己分析。
代碼截圖:
窗體截圖:
運行截圖:
點擊錄入工作表:
如果某文本框為空:
今日內容回向:
1 今日講解的使控件獲得焦點的方法是什么?
2 數據是如何錄入到工作表的?(之前有朋友問到此問題,請留意代碼)
總結
以上是生活随笔為你收集整理的vba 判断文本框内容是否为空_校验数据一旦失败,VBA代码自动控制焦点返回的另一备选方案...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 找出数组中被其他元素整除的元素_「每日一
- 下一篇: c语言全排列算法_一文学会回溯搜索算法解