将新文本框添加到用户窗体或 Sheet 填充现有文本框
Add New Textbox to Userform or Sheet when the existing is filled
我已经使用 vba 有一段时间了,但我遇到了这个问题:
我想在现有的用户窗体中添加一个新的文本框,或者 Sheet 每当现有的文本框被填充时。
看看下面的图片可以更好地了解我打算做什么。
第一张图"Selected Indices"下面只有一个索引
填充,即 "ER01" 和下面你可以阅读 "Enter Index"
移动下一张图你可以看到我填充了第二个文本框
使用 "ER02" 并在按回车键后自动显示文本框
"Enter Index"出现。
同样的事情发生在我填充第三张的第三张图片上
带有 "ER03" 的文本框,并在按回车键后自动显示
出现 "Enter Index" 的文本框
希望我说得够清楚
非常感谢您的帮助
这对您来说是一个好的开始。将此脚本放在干净的常规模块中。它将在 Sheet1 上创建一个文本框(名为 MyTB),其中包含文本 "hello"。 (来源:http://www.contextures.com/excelvbatextboxcreate.html)
Sub AddTextBox()
Dim ws As Worksheet
Dim oTB As Object
Set ws = Worksheets("Sheet1")
Set oTB = ws.OLEObjects.Add(ClassType:="Forms.TextBox.1")
With oTB
.Name = "MyTB"
' .LinkedCell = "$A"
.Left = ws.Range("B2").Left
.Top = ws.Range("B2").Left
.Width = ws.Range("B2").Width
.Height = ws.Range("B2").Height
.Object.BackColor = RGB(204, 204, 255)
.Object.ForeColor = RGB(0, 0, 255)
.Object.Text = "Hello"
End With
End Sub
在 Sheet1 上创建文本框后,将以下代码放入 Sheet1 模块中。
Private Sub MyTB_Change()
If MyTB.Text = 21 Then Beep
End Sub
然后转到 Sheet1 并将文本框中的 "Hello" 更改为数字 21。它应该会发出哔声。
这些都是你做你想做的事所需要的技能。您需要做的就是添加逻辑。当您在 MyTB 中输入 21 时不会发出蜂鸣声,您可以将其定向到另一个创建第二个文本框的子例程。永远记住这是一个学习网站,而不是编码网站。您还可以为第二个文本框向 sheet 模块动态添加代码,并根据需要为任意数量的文本框不断添加代码。
我已经使用 vba 有一段时间了,但我遇到了这个问题:
我想在现有的用户窗体中添加一个新的文本框,或者 Sheet 每当现有的文本框被填充时。 看看下面的图片可以更好地了解我打算做什么。
第一张图"Selected Indices"下面只有一个索引 填充,即 "ER01" 和下面你可以阅读 "Enter Index"
移动下一张图你可以看到我填充了第二个文本框 使用 "ER02" 并在按回车键后自动显示文本框 "Enter Index"出现。
同样的事情发生在我填充第三张的第三张图片上 带有 "ER03" 的文本框,并在按回车键后自动显示 出现 "Enter Index" 的文本框
希望我说得够清楚
非常感谢您的帮助
这对您来说是一个好的开始。将此脚本放在干净的常规模块中。它将在 Sheet1 上创建一个文本框(名为 MyTB),其中包含文本 "hello"。 (来源:http://www.contextures.com/excelvbatextboxcreate.html)
Sub AddTextBox()
Dim ws As Worksheet
Dim oTB As Object
Set ws = Worksheets("Sheet1")
Set oTB = ws.OLEObjects.Add(ClassType:="Forms.TextBox.1")
With oTB
.Name = "MyTB"
' .LinkedCell = "$A"
.Left = ws.Range("B2").Left
.Top = ws.Range("B2").Left
.Width = ws.Range("B2").Width
.Height = ws.Range("B2").Height
.Object.BackColor = RGB(204, 204, 255)
.Object.ForeColor = RGB(0, 0, 255)
.Object.Text = "Hello"
End With
End Sub
在 Sheet1 上创建文本框后,将以下代码放入 Sheet1 模块中。
Private Sub MyTB_Change()
If MyTB.Text = 21 Then Beep
End Sub
然后转到 Sheet1 并将文本框中的 "Hello" 更改为数字 21。它应该会发出哔声。
这些都是你做你想做的事所需要的技能。您需要做的就是添加逻辑。当您在 MyTB 中输入 21 时不会发出蜂鸣声,您可以将其定向到另一个创建第二个文本框的子例程。永远记住这是一个学习网站,而不是编码网站。您还可以为第二个文本框向 sheet 模块动态添加代码,并根据需要为任意数量的文本框不断添加代码。