Excel VBA文本框

时间:2019-04-23 21:25:30

标签: excel vba

我正在尝试使用带有两个文本框的用户窗体在excel VBA中创建一个计算器,我刚刚创建了数字键盘,例如,当我单击1时,它将在文本框1中输入数字1,但是当我选择文本时框2,然后再次选择数字1,它将重新输入文本框1而不是光标所在的文本框2。任何人都知道我如何使用setFocus之类的内容或沿这些行的内容在设置光标的任何文本框中输入数字,谢谢。

Private Sub CmdBtn1_Click()
    txt_Num1.Value = txt_Num1.Value + "1"
End Sub

我正在寻找要在单击数字时将光标输入到哪个文本框中输入数字。

1 个答案:

答案 0 :(得分:0)

这是非常原始的,但是它应该使您朝正确的方向开始。这就是用户表单中的代码。

Dim currentTextBoxName As String

Private Sub CommandButton1_Click()
  Dim currentControl
  Set currentControl = Controls(currentTextBoxName)
  currentControl.Value = "1"
End Sub

Private Sub TextBox1_Enter()
  currentTextBoxName = "TextBox1"
End Sub

Private Sub TextBox2_Enter()
  currentTextBoxName = "TextBox2"
End Sub

这假定您的两个文本框分别名为“ TextBox1”和“ TextBox2”。显然,在TextBox_Enter事件上传递文本框名称的方法要好得多(更加安全),但这向您展示了基本前提。

显然,您将为TextBox_Exit事件添加代码,以确保一旦焦点离开该文本框,就不会在错误的文本框中输入值。

当学习在VBA IDE中编写VBA代码时,使用代码窗口顶部的下拉列表会有所帮助: enter image description here

这两个下拉菜单使您可以访问用户窗体上的所有对象及其关联事件。超级有用且经常被忽视的工具。