在Excel 2010中将数据从表单复制到单元格中

我目前有一个Excel 2010电子表格。 我devise了一个表单,我正在寻求允许用户在表单中inputdate,然后将其input到工作表中。

我的第一个条目是我的表单上的“txtDate”,我希望将它input单元格J7,下一个数据以“txtTime”forms进入单元格K7,然后将其他数据input到行中的其他单元格 – L7,M7, N7的等等等等…一旦这个单元格提交与表单上的button,数据input,然后下一次使用的forms,数据将进入下一行,第8行,然后是第9行上下一个场合等…

我在网上find了下面的代码示例,并且该示例显示它从单元格A2开始。 我看不到提及的A2,所以我想知道如何编辑代码,以开始单元格J7。

'Copy input values to sheet. Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets("Animals") lRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row With ws .Cells(lRow, 1).Value = Me.cboClass.Value .Cells(lRow, 2).Value = Me.txtGivenName.Value .Cells(lRow, 3).Value = Me.txtTagNumber.Value .Cells(lRow, 4).Value = Me.txtSpecies.Value .Cells(lRow, 5).Value = Me.cboSex.Value .Cells(lRow, 6).Value = Me.cboConservationStatus.Value .Cells(lRow, 7).Value = Me.txtComment.Value 

以下是我在2015年3月27日之后回答的代码:

 Dim lRow As Long Dim ws As Worksheet Set ws = Worksheets("Pursue") lRow = Application.WorksheetFunction.Max(ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row, 7) With ws .Cells(lRow, 10).Value = Me.dateBox.Value etc.... 

.Cells(lRow, 1).Value (等等)是什么引用什么单元格写入。 第一个参数说明单元格在哪一行,第二个单元格在哪一列。当明确地引用单元格时,我没有看到这样做的理由,但主要是当你做一个循环,例如lRow是为了写下一列,每次迭代都加1。

由于lRow是使用lRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row所以它将始终是列A中第一个空行的编号。要将其更改为返回J列中的第一个空行,你需要将Cells的1改为10(J是字母表中的第10个字母,为了使它在任何时候都不会比第7行开始更远,我会添加一个Max声明:

 lRow = Application.WorksheetFunction.Max(ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row, 7) 

为了使Sub在With语句中写入列J,需要更改列引用以反映这一点。 目前它写入列1,2,3,等等,你想它写入列10,11,12等,就像是:

 With ws .Cells(lRow, 10).Value = Me.cboClass.Value .Cells(lRow, 11).Value = Me.txtGivenName.Value .Cells(lRow, 12).Value = Me.txtTagNumber.Value etc.