簡體   English   中英

帶有 vba 代碼的數據輸入表

[英]Data Entry form with vba codes

我在一張表格中有一個 excel 表格作為數據輸入(1- Textbox1 = 名稱,2-Textbox2 = 舊,3-Textbox3 = Email)

你沒有說什么來澄清我的問題......當來到這里並需要幫助時,最好澄清任何問題,如果你不明白要求澄清的內容是什么。

無論如何,我正在嘗試幫助您建議下一個場景:

  1. 我假設您將工作表本身命名為“一張 excel 表單”,該工作表具有三個文本框(ActiveX 類型)和一個組合框(也是 ActiveX 類型)。

這三個文本框的名稱為“TextBox1”、“TextBox2”和“TextBox3”。 如果不是這樣,后面的代碼很容易適應您的真實姓名。

組合框名稱應為“ComboOptions”。 創建后,在設計模式下,右鍵單擊它,選擇Properties並在其ListFillRange屬性中設置 A1:A2。 然后在“A1”中添加“教師”,在“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. Select 組合框中的一個選項,運行上面的代碼並發送一些關於行為的反饋,這與您的預期不一致。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM