带有vba代码的数据输入表单



我有一个excel表格在一个表格作为数据输入(1- Textbox1 = Name, 2-Textbox2 = Old, 3-Textbox3= Email)

你没有说任何话来澄清我的问题…当你来到这里需要帮助时,最好澄清任何问题,如果你不明白是什么意思,请问清楚.

无论如何,我在试着帮助你建议下一个场景:

  1. 我假设您在一个工作表中命名了一个excel表单。有三个文本框(ActiveX类型)和一个组合框(也是ActiveX类型)。

三个文本框的名称分别为"TextBox1";TextBox2"one_answers";TextBox3"。如果不是这样,接下来的代码将很容易适应您的真实姓名。

组合框名称应为"ComboOptions"创建完成后,在设计模式下,右键单击它,选择Properties,在其ListFillRange属性处设置A1:A2。然后加上&;teachers &;在"A1"one_answers";Students"在"A2 .

  1. 将下一段代码粘贴到标准模块中:
Private Sub EnterButton_Click()
Dim sh As Worksheet, sh2 As Worksheet, sh3 As Worksheet, workSh As Worksheet, lastRow As Long
Dim cbOption As MSForms.ComboBox, txtName As MSForms.TextBox, txtOld As MSForms.TextBox, txtEmail As MSForms.TextBox
Set sh = ActiveSheet
Set sh2 = sh.Next 'Worksheets("Teachers")
Set sh3 = sh2.Next 'Worksheets("Students")
Set cbOption = sh.OLEObjects("ComboOptions").Object
If cbOption.Value = "" Then MsgBox "No option chosen in combo box...": Exit Sub
If cbOption.Value = "Teachers" Then
Set workSh = sh2
ElseIf cbOption.Value = "Students" Then
Set workSh = sh3
End If
Set txtName = sh.OLEObjects("TextBox1").Object
Set txtOld = sh.OLEObjects("TextBox2").Object
Set txtEmail = sh.OLEObjects("TextBox3").Object
If txtName.Text = "" Or txtOld.Text = "" Or txtEmail.Text = "" Then _
MsgBox "All involved text boxes must have a value!": Exit Sub
lastRow = workSh.Range("B" & workSh.rows.count).End(xlUp).row + 1
With workSh
.Range("B" & lastRow).Value = txtName.Value
.Range("C" & lastRow).Value = txtOld.Value
.Range("D" & lastRow).Value = txtEmail.Value
End With
End Sub
  1. 在组合框中选择一个选项,运行上面的代码,并发送一些关于违反您期望的行为的反馈。

最新更新