欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

vba 判断文本框内容是否为空_校验数据一旦失败,VBA代码自动控制焦点返回的另一备选方案...

发布时间:2025/3/19 编程问答 55 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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中以便重新输入。

后续的代码不再讲解,请读者自己分析。

代码截图:

窗体截图:

运行截图:

点击录入工作表:

如果某文本框为空:

今日内容回向:

1 今日讲解的使控件获得焦点的方法是什么?

2 数据是如何录入到工作表的?(之前有朋友问到此问题,请留意代码)

总结

以上是生活随笔为你收集整理的vba 判断文本框内容是否为空_校验数据一旦失败,VBA代码自动控制焦点返回的另一备选方案...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。