如何以用户形式将数据传输到同一工作簿中的不同工作表中(使用ComboBox1)?

时间:2018-11-01 18:35:34

标签: excel drop-down-menu dropdown

@ K.Davis用户根据我的要求提供了未在工作表中输入日期的代码(问题已解决!),他提供了使用用户表单中的组合框选择要在哪个工作表中输入数据的代码。但是我确定我做的不对,并收到错误消息。这是代码:

Private Sub CommandButton1_Click()

Dim dcc As Long
Dim abc As Worksheet

Set abc = Worksheets(Me.ComboBox1.Value)
dcc = Sheets("January2019").Range("A" & Rows.Count).End(xlUp).Row

With abc

    .Cells(dcc + 1, 1).Value = Date
    .Cells(dcc + 1, 2).Value = Me.TextBox1.Value
    .Cells(dcc + 1, 3).Value = Me.TextBox2.Value
    .Cells(dcc + 1, 4).Value = Me.TextBox3.Value
    .Cells(dcc + 1, 5).Value = Me.TextBox4.Value
    .Cells(dcc + 1, 6).Value = Me.TextBox5.Value

End With
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""

End Sub

现在,我确定是否删除dcc = sheets(“ January2019”)。range till(xlup).row行,然后它将停止在第一行中输入日期。我可能是错的。但这是CommandButton1上的代码,该代码将数据从用户表单传输到工作表。目前,工作簿中仅制作了jan和feb表,但我将添加更多表。在这里值得一提的是,我通过观看视频制作了下拉列表供组合框1使用。只需在新工作表中添加月份的名称,然后在combobox1的原始源中添加工作表的名称,即可填充组合框。月工作表的名称命名为Sheet1。

非常感谢您的帮助。

干杯。

1 个答案:

答案 0 :(得分:2)

与其使用包含工作表名称的Sheet1,而是使用工作表集合自动填充组合框。

因此,无论您使用什么代码来填充ComboBox1,都应摆脱它。另外,删除您的Sheet1,因为您将不再使用它。

Private Sub UserForm_Initialize()
    Dim i As Long
    For i = 1 To ThisWorkbook.Sheets.Count
        Me.ComboBox1.AddItem ThisWorkbook.Sheets(i).Name
    Next
End Sub

Private Sub CommandButton1_Click()

    Dim dcc As Long
    Dim abc As Worksheet

    Set abc = ThisWorkbook.Worksheets(Me.ComboBox1.Value)

    With abc

        dcc = .Range("A" & Rows.Count).End(xlUp).Row

        .Cells(dcc + 1, 1).Value = Date
        .Cells(dcc + 1, 2).Value = Me.TextBox1.Value
        .Cells(dcc + 1, 3).Value = Me.TextBox2.Value
        .Cells(dcc + 1, 4).Value = Me.TextBox3.Value
        .Cells(dcc + 1, 5).Value = Me.TextBox4.Value
        .Cells(dcc + 1, 6).Value = Me.TextBox5.Value

    End With
    TextBox1.Text = ""
    TextBox2.Text = ""
    TextBox3.Text = ""
    TextBox4.Text = ""
    TextBox5.Text = ""

End Sub

您的dcc变量也需要通过abc工作表进行限定-因此我将其移至您的With...End With块中。