将新文本框添加到用户窗体或 Sheet 填充现有文本框

Add New Textbox to Userform or Sheet when the existing is filled

我已经使用 vba 有一段时间了,但我遇到了这个问题:

我想在现有的用户窗体中添加一个新的文本框,或者 Sheet 每当现有的文本框被填充时。 看看下面的图片可以更好地了解我打算做什么。

希望我说得够清楚

非常感谢您的帮助

这对您来说是一个好的开始。将此脚本放在干净的常规模块中。它将在 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 模块动态添加代码,并根据需要为任意数量的文本框不断添加代码。