word vba,怎样在光标所在的textbox中,使用按钮输入内容
三个文本框textbox1、textbox2、textbox3,一个按钮commandbutton1。我需要达到的效果是:当光标在textbox1上时,就在textbox...
三个文本框textbox1、textbox2、textbox3,一个按钮commandbutton1。我需要达到的效果是:当光标在textbox1上时,就在textbox1中输入内容;textbox2和textbox3也是这样用。我写的代码是这样的:
Private Sub CommandButton1_Click()
If TextBox1.SetFocus Then
TextBox1 = 1
ElseIf TextBox2.SetFocus Then
TextBox2 = 1
End If
End Sub
这里我只用了两个文本框来试验,就已经报错了,第3个就更不用试了。运行并单击按钮之后提示“缺少函数或变量”。不知这个问题该如何解决?向高手求教!多谢啦! 展开
Private Sub CommandButton1_Click()
If TextBox1.SetFocus Then
TextBox1 = 1
ElseIf TextBox2.SetFocus Then
TextBox2 = 1
End If
End Sub
这里我只用了两个文本框来试验,就已经报错了,第3个就更不用试了。运行并单击按钮之后提示“缺少函数或变量”。不知这个问题该如何解决?向高手求教!多谢啦! 展开
1个回答
展开全部
楼主,有个概念你要搞清楚,这个光标会变化的,比如当光标位于textbox1时候,你点击按钮的时候,这个时候焦点迅速转移到按钮上,所以,你再去判断光标是不是在textbox1上就失去意义了,因为它肯定不在那里,那么有没有办法可以解决这个问题了,办法当然是有的,就是设置一个公共变量用来记录获得焦点的textbox,这样就会轻而易举的解决问题
Public my_object As Object
Private Sub CommandButton1_Click()
my_object.Value = 1
End Sub
Private Sub TextBox1_GotFocus()
Set my_object = Me.TextBox1
End Sub
Private Sub TextBox2_GotFocus()
Set my_object = Me.TextBox2
End Sub
Private Sub TextBox3_GotFocus()
Set my_object = Me.TextBox3
End Sub
代码解析:
设置一个公共变量my_object,然后word当中有三个textbox,名称分别为textbox1,textbox2,textbox3,然后分别添加事件代码TextBox1_GotFocus
(当光标位于textbox内即获得焦点,会自动触发事件),然后把textbox赋值给公共变量,点击按钮后,给公共变量my_object赋值即可
追问
首先谢谢您的回答。但是我新建一个窗体、3个文本框、1个按钮,名称和问题中的一样,然后把您的代码粘进去、运行、点按钮,给出的错误提示是:“运行时错误‘91’。对象变量或With块变量未设置。”
请问这个要怎么处理?是我粘贴代码的问题吗?
追答
word窗体上面的TextBox没有GotFocus事件,只有一个Exit事件可以用,如果你是在word页面当中插入的Textbox控件可以使用上述代码,如果是窗体上插入的textbox得更换事件代码,具体代码如下,亲测通过
Public my_object As Object
Private Sub CommandButton1_Click()
my_object.Value = 1
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Set my_object = Me.TextBox1
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Set my_object = Me.TextBox2
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Set my_object = Me.TextBox3
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询