Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 带有vba代码的数据输入表单_Excel_Vba_Forms - Fatal编程技术网

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

Excel 带有vba代码的数据输入表单,excel,vba,forms,Excel,Vba,Forms,我有一张excel表格作为数据输入(1-Textbox1=姓名,2-Textbox2=旧版,3-Textbox3=电子邮件)你没有说什么来澄清我的问题。。。当您来到这里需要帮助时,最好澄清任何问题,如果您不了解问题的内容,请要求澄清 无论如何,我正试图帮助你提出下一个方案: 我假设您将“一张工作表中的excel表单”命名为工作表本身,它有三个文本框(ActiveX类型)和一个组合框(也是ActiveX类型) 这三个文本框的名称分别为“TextBox1”、“TextBox2”和“TextBox3”

我有一张excel表格作为数据输入(1-Textbox1=姓名,2-Textbox2=旧版,3-Textbox3=电子邮件)

你没有说什么来澄清我的问题。。。当您来到这里需要帮助时,最好澄清任何问题,如果您不了解问题的内容,请要求澄清

无论如何,我正试图帮助你提出下一个方案:

  • 我假设您将“一张工作表中的excel表单”命名为工作表本身,它有三个文本框(ActiveX类型)和一个组合框(也是ActiveX类型)
  • 这三个文本框的名称分别为“TextBox1”、“TextBox2”和“TextBox3”。如果不是这样,接下来的代码将很容易适应你的真实姓名

    组合框名称应为“ComboOptions”。创建后,在设计模式下,右键单击它,选择
    Properties
    ,并在其
    ListFillRange
    属性处设置A1:A2。然后在“A1”中添加“教师”,在“A2”中添加“学生”

  • 在标准模块中粘贴下一个代码:
  • 在组合框中选择一个选项,运行上面的代码,并根据您的期望发送一些关于行为的反馈

  • “一张表格中的excel表单”是什么意思?这三个文本框是什么类型的控件?它们的真实名称是什么?“TextBox1”还是“name”“第一个呢?@Mohsen:你没有抽出时间来测试上面的解决方案吗?如果经过测试,它不是满足了你的需要吗?@Mohsen:是的,你可以。但是我们社区的想法是帮助你学习。。。如果你自己尝试的话,这会更好。请将工作簿发送给我,但同时请尝试从我的上述建议中了解的内容。你可能会有惊喜让它自己工作,这应该更有用…@Mohsen:是你送的吗?我没有收到任何东西…@Mohsen:问起发送的事,我想你可以在我的个人资料中看到私人邮件。但是你可以在转帐网站上分享。这是一个免费的网站,易于使用。您将只在此处发布生成的链接,,,@Mohsen:OK。我将在几分钟内下载并配置。。。
    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