vba判断⽂本框内容是否为空_校验数据⼀旦失败,VBA代码⾃动控制焦点返回的另⼀备选⽅案...
⼤家好,我们今⽇继续讲解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中以便重新输⼊。
后续的代码不再讲解,请读者⾃⼰分析。
代码截图:
窗体截图:
html内容文本框运⾏截图:
点击录⼊⼯作表:
如果某⽂本框为空:
今⽇内容回向:
1 今⽇讲解的使控件获得焦点的⽅法是什么?
2 数据是如何录⼊到⼯作表的?(之前有朋友问到此问题,请留意代码)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。