word vba,怎样在光标所在的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个就更不用试了。运行并单击按钮之后提示“缺少函数或变量”。不知这个问题该如何解决?向高手求教!多谢啦!

楼主,有个概念你要搞清楚,这个光标会变化的,比如当光标位于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
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网