@ 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。
非常感谢您的帮助。
干杯。
答案 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
块中。